package com.datascience.datastoring.transforms; import com.datascience.core.base.AssignedLabel; import com.datascience.core.base.ContValue; import com.datascience.core.base.LObject; import com.datascience.core.base.Worker; import com.datascience.datastoring.datamodels.memory.IncrementalNominalModel; import com.datascience.datastoring.datamodels.memory.NominalModel; import com.datascience.core.results.*; import com.datascience.utils.ITransformation; import com.datascience.utils.transformations.simple.*; import java.lang.reflect.Type; import java.util.Collection; public class SimpleStringCoreTransformsFactory extends SingletonsStringCoreTransformsFactory { protected String objectSeparator; protected String collectionSeparator; protected String mapSeparator; StringTransform stringTransform; ContValueTransform contValueTransform; public SimpleStringCoreTransformsFactory(String objectSeparator, String collectionSeparator, String mapSeparator){ this.objectSeparator = objectSeparator; this.collectionSeparator = collectionSeparator; this.mapSeparator = mapSeparator; stringTransform = new StringTransform(); contValueTransform = new ContValueTransform(objectSeparator); } public SimpleStringCoreTransformsFactory(){ this("|", "$", ";"); } @Override public ITransformation<Collection<AssignedLabel<String>>, String> createNominalAssignsTransformation() { AssignTransform<String> assignTransform = new AssignTransform<String>(objectSeparator, stringTransform); return new CollectionTransform<AssignedLabel<String>>(collectionSeparator, assignTransform); } @Override public ITransformation<Collection<LObject<String>>, String> createNominalObjectsTransformation() { LObjectTransform<String> objectTransform = new LObjectTransform<String>(objectSeparator, stringTransform); return new CollectionTransform<LObject<String>>(collectionSeparator, objectTransform); } @Override public ITransformation<NominalModel, String> createNominalModelTransformation() { return new NominalModelTransform(mapSeparator); } @Override public ITransformation<IncrementalNominalModel, String> createIncrementalNominalModelTransformation() { return new IncrementalNominalModelTransform(mapSeparator); } @Override public ITransformation<Collection<AssignedLabel<ContValue>>, String> createContAssignsTransformation() { AssignTransform<ContValue> assignTransform = new AssignTransform<ContValue>(objectSeparator, contValueTransform); return new CollectionTransform<AssignedLabel<ContValue>>(collectionSeparator, assignTransform); } @Override public ITransformation<Collection<LObject<ContValue>>, String> createContObjectsTransformation() { LObjectTransform<ContValue> objectTransform = new LObjectTransform<ContValue>(objectSeparator, contValueTransform); return new CollectionTransform<LObject<ContValue>>(collectionSeparator, objectTransform); } @Override public ITransformation<Collection<Worker>, String> createWorkersTransformation() { WorkerTransform workerTransform = new WorkerTransform(); return new CollectionTransform<Worker>(collectionSeparator, workerTransform); } @Override public ITransformation<DatumContResults, String> createDatumContResultsTransformation() { return new DatumContResultTransform(objectSeparator); } @Override public ITransformation<WorkerContResults, String> createWorkerContResultsTransformation() { AssignTransform<ContValue> assignTransform = new AssignTransform<ContValue>(objectSeparator, contValueTransform); CollectionTransform<AssignedLabel<ContValue>> assignCollectionTransform = new CollectionTransform(collectionSeparator, assignTransform); return new WorkerContResultTransform(objectSeparator, assignCollectionTransform); } @Override public ITransformation<DatumResult, String> createDatumStringResultsTransformation() { return new DatumResultTransform(mapSeparator); } @Override public ITransformation<WorkerResult, String> createWorkerStringResultsTransformation(ResultsFactory.WorkerResultNominalFactory wrnf) { return new WorkerResultTransform(wrnf); } @Override public String getID() { return "SIMPLE"; } }