-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.cdm.io.common;\r
-\r
-import java.util.UUID;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
-import eu.etaxonomy.cdm.database.ICdmDataSource;\r
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;\r
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;\r
-import eu.etaxonomy.cdm.model.agent.Person;\r
-import eu.etaxonomy.cdm.model.common.Language;\r
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
-\r
-/**\r
- * @author a.mueller\r
- * @created 20.06.2008\r
- * @version 1.0\r
- */\r
-public abstract class ImportConfiguratorBase {\r
- private static final Logger logger = Logger.getLogger(ImportConfiguratorBase.class);\r
-\r
- //TODO\r
- private boolean deleteAll = false;\r
- \r
- private boolean doAuthors = true;\r
- //references\r
- private DO_REFERENCES doReferences = DO_REFERENCES.ALL;\r
- \r
- //check\r
- private CHECK check = CHECK.CHECK_AND_IMPORT;\r
- \r
- \r
- //names\r
- private boolean doTaxonNames = true;\r
- private boolean doRelNames = true;\r
- private boolean doNameStatus = true;\r
- private boolean doTypes = true;\r
- private boolean doNameFacts = true;\r
- \r
- //taxa\r
- private boolean doTaxa = true;\r
- private boolean doRelTaxa = true;\r
- private boolean doFacts = true;\r
-\r
- //occurrence\r
- private boolean doOccurrence = true;\r
- \r
- //Nomenclatural Code\r
- private NomenclaturalCode nomenclaturalCode = null;\r
- \r
- //uuid of concept reference\r
- private UUID secUuid = UUID.randomUUID();\r
- private int sourceSecId = -1;\r
- \r
- private Object source;\r
- protected ReferenceBase sourceReference;\r
- private ICdmDataSource destination;\r
- private Person commentator = Person.NewTitledInstance("automatic BerlinModel2CDM importer");\r
- \r
- private Language factLanguage = Language.ENGLISH();\r
- private DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;\r
-\r
-/* *****************CONSTRUCTOR *****************************/\r
- \r
- /**\r
- * @param source the source to set\r
- */\r
- protected void setSource(Object source) {\r
- this.source = source;\r
- }\r
- \r
- \r
- /**\r
- * @param source the source to get\r
- */\r
- protected Object getSource() {\r
- return source;\r
- }\r
- \r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isValid()\r
- */\r
- public boolean isValid(){\r
- boolean result = true;\r
- if (source == null){\r
- logger.warn("Connection to BerlinModel could not be established");\r
- result = false;\r
- }\r
- if (destination == null){\r
- logger.warn("Connection to Cdm could not be established");\r
- result = false;\r
- }\r
- \r
- return result;\r
- }\r
- \r
- \r
- \r
-/* ****************** GETTER/SETTER **************************/ \r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDeleteAll()\r
- */\r
- public boolean isDeleteAll() {\r
- return deleteAll;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDeleteAll(boolean)\r
- */\r
- public void setDeleteAll(boolean deleteAll) {\r
- this.deleteAll = deleteAll;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoAuthors()\r
- */\r
- public boolean isDoAuthors() {\r
- return doAuthors;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoAuthors(boolean)\r
- */\r
- public void setDoAuthors(boolean doAuthors) {\r
- this.doAuthors = doAuthors;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getDoReferences()\r
- */\r
- public DO_REFERENCES getDoReferences() {\r
- return doReferences;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoReferences(eu.etaxonomy.cdm.io.tcs.TcsImportConfigurator.DO_REFERENCES)\r
- */\r
- public void setDoReferences(DO_REFERENCES doReferences) {\r
- this.doReferences = doReferences;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getCheck()\r
- */\r
- public CHECK getCheck() {\r
- return this.check;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setCheck(eu.etaxonomy.cdm.io.tcs.TcsImportConfigurator.CHECK)\r
- */\r
- public void setCheck(CHECK check) {\r
- this.check = check;\r
- }\r
- \r
- \r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoTaxonNames()\r
- */\r
- public boolean isDoTaxonNames() {\r
- return doTaxonNames;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoTaxonNames(boolean)\r
- */\r
- public void setDoTaxonNames(boolean doTaxonNames) {\r
- this.doTaxonNames = doTaxonNames;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoRelNames()\r
- */\r
- public boolean isDoRelNames() {\r
- return doRelNames;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoRelNames(boolean)\r
- */\r
- public void setDoRelNames(boolean doRelNames) {\r
- this.doRelNames = doRelNames;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoNameStatus()\r
- */\r
- public boolean isDoNameStatus() {\r
- return doNameStatus;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoNameStatus(boolean)\r
- */\r
- public void setDoNameStatus(boolean doNameStatus) {\r
- this.doNameStatus = doNameStatus;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoNameFacts()\r
- */\r
- public boolean isDoNameFacts() {\r
- return doNameFacts;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoNameFacts(boolean)\r
- */\r
- public void setDoNameFacts(boolean doNameFacts) {\r
- this.doNameFacts = doNameFacts;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoTypes()\r
- */\r
- public boolean isDoTypes() {\r
- return doTypes;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoTypes(boolean)\r
- */\r
- public void setDoTypes(boolean doTypes) {\r
- this.doTypes = doTypes;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoTaxa()\r
- */\r
- public boolean isDoTaxa() {\r
- return doTaxa;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoTaxa(boolean)\r
- */\r
- public void setDoTaxa(boolean doTaxa) {\r
- this.doTaxa = doTaxa;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoRelTaxa()\r
- */\r
- public boolean isDoRelTaxa() {\r
- return doRelTaxa;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoRelTaxa(boolean)\r
- */\r
- public void setDoRelTaxa(boolean doRelTaxa) {\r
- this.doRelTaxa = doRelTaxa;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoFacts()\r
- */\r
- public boolean isDoFacts() {\r
- return doFacts;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoFacts(boolean)\r
- */\r
- public void setDoFacts(boolean doFacts) {\r
- this.doFacts = doFacts;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#isDoOccurrence()\r
- */\r
- public boolean isDoOccurrence() {\r
- return doOccurrence;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDoOccurrence(boolean)\r
- */\r
- public void setDoOccurrence(boolean doOccurrence) {\r
- this.doOccurrence = doOccurrence;\r
- }\r
-\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getDestination()\r
- */\r
- public ICdmDataSource getDestination() {\r
- return destination;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDestination(eu.etaxonomy.cdm.database.ICdmDataSource)\r
- */\r
- public void setDestination(ICdmDataSource destination) {\r
- this.destination = destination;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getDbSchemaValidation()\r
- */\r
- public DbSchemaValidation getDbSchemaValidation() {\r
- return dbSchemaValidation;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setDbSchemaValidation(eu.etaxonomy.cdm.database.DbSchemaValidation)\r
- */\r
- public void setDbSchemaValidation(DbSchemaValidation dbSchemaValidation) {\r
- this.dbSchemaValidation = dbSchemaValidation;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getSourceReference()\r
- */\r
- public abstract ReferenceBase getSourceReference();\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setSourceReference(eu.etaxonomy.cdm.model.reference.ReferenceBase)\r
- */\r
- public void setSourceReference(ReferenceBase sourceReference) {\r
- this.sourceReference = sourceReference;\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getSourceReferenceTitle()\r
- */\r
- public String getSourceReferenceTitle() {\r
- return getSourceReference().getTitleCache();\r
- }\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setSourceReferenceTitle(java.lang.String)\r
- */\r
- public void setSourceReferenceTitle(String sourceReferenceTitle) {\r
- getSourceReference().setTitleCache(sourceReferenceTitle);\r
- }\r
-\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getCommentator()\r
- */\r
- public Person getCommentator() {\r
- return commentator;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setCommentator(eu.etaxonomy.cdm.model.agent.Person)\r
- */\r
- public void setCommentator(Person commentator) {\r
- this.commentator = commentator;\r
- }\r
-\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#getFactLanguage()\r
- */\r
- public Language getFactLanguage() {\r
- return factLanguage;\r
- }\r
-\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.tcs.IImportConfigurator#setFactLanguage(eu.etaxonomy.cdm.model.common.Language)\r
- */\r
- public void setFactLanguage(Language factLanguage) {\r
- this.factLanguage = factLanguage;\r
- }\r
-\r
-\r
- /**\r
- * @return the nomenclaturalCode\r
- */\r
- public NomenclaturalCode getNomenclaturalCode() {\r
- return nomenclaturalCode;\r
- }\r
-\r
-\r
- /**\r
- * @param nomenclaturalCode the nomenclaturalCode to set\r
- */\r
- public void setNomenclaturalCode(NomenclaturalCode nomenclaturalCode) {\r
- this.nomenclaturalCode = nomenclaturalCode;\r
- }\r
-\r
-\r
- /**\r
- * @return the secUuid\r
- */\r
- public UUID getSecUuid() {\r
- return secUuid;\r
- }\r
-\r
-\r
- /**\r
- * @param secUuid the secUuid to set\r
- */\r
- public void setSecUuid(UUID secUuid) {\r
- this.secUuid = secUuid;\r
- }\r
-\r
- /**\r
- * @return the sourceSecId\r
- */\r
- public int getSourceSecId() {\r
- return sourceSecId;\r
- }\r
-\r
- /**\r
- * @param sourceSecId the sourceSecId to set\r
- */\r
- public void setSourceSecId(int sourceSecId) {\r
- this.sourceSecId = sourceSecId;\r
- }\r
- \r
-}\r
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.io.common;
+
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.reference.Reference;
+
+/**
+ * @author a.mueller
+ * @created 20.06.2008
+ * @param <STATE>
+ */
+@Component
+public abstract class ImportConfiguratorBase<STATE extends ImportStateBase, SOURCE> extends IoConfiguratorBase implements IImportConfigurator{
+
+
+ //check
+ private CHECK check = CHECK.CHECK_AND_IMPORT;
+
+ //editor
+ static EDITOR editor = EDITOR.EDITOR_AS_ANNOTATION;
+
+ /**
+ * The transformer class to be used for Input
+ */
+ private IInputTransformer transformer;
+
+//
+// //TODO
+// private boolean deleteAll = false;
+
+ //nullValues
+ private boolean ignoreNull = false;
+
+ //Nomenclatural Code
+ private NomenclaturalCode nomenclaturalCode = null;
+
+ private Map<Integer, Feature> featureMap = new HashMap<Integer, Feature>();
+
+ /* The classification name for the first classification.
+ * Needs only to be defined if the import does not handle the naming
+ * itself (e.g. by using the taxon sec. reference title cache)
+ */
+ private String classificationName = "Classification - no name";
+
+ private UUID classificationUuid = UUID.randomUUID();
+ //uuid of concept reference
+ private UUID secUuid = UUID.randomUUID();
+
+ private Object sourceSecId = -1;
+
+ private SOURCE source;
+ protected Reference sourceReference;
+ private UUID sourceRefUuid;
+ private ICdmDataSource destination;
+ private Person commentator = Person.NewTitledInstance("automatic CDM importer");
+
+ protected Class<ICdmImport>[] ioClassList;
+
+ protected ICdmIO[] ioList;
+
+ protected String[] ioBeans;
+
+ /*user interaction*/
+ private boolean askUserForHelp =false;
+
+
+/* *****************CONSTRUCTOR *****************************/
+
+ protected ImportConfiguratorBase(IInputTransformer transformer){
+ super();
+ setDbSchemaValidation(DbSchemaValidation.UPDATE);
+ this.transformer = transformer;
+
+ }
+
+ abstract protected void makeIoClassList();
+
+ @Override
+ public IInputTransformer getTransformer() {
+ return this.transformer;
+ }
+
+ @Override
+ public void setTransformer(IInputTransformer transformer){
+ this.transformer = transformer;
+ }
+
+ /**
+ * @param source the source to set
+ */
+ public void setSource(SOURCE source) {
+ this.source = source;
+ }
+
+ /**
+ * @param source the source to get
+ */
+ @Override
+ public SOURCE getSource() {
+ return source;
+ }
+
+ @Override
+ public boolean isValid(){
+ boolean result = true;
+ if (getSource() == null){
+ //logger.warn("Connection to source could not be established");
+ result = false;
+ }
+//Not valid any more as the importer may already have a destination
+// if (destination == null ){
+// logger.warn("Connection to Cdm could not be established");
+// result = false;
+// }
+
+ return result;
+ }
+
+
+
+/* ****************** GETTER/SETTER **************************/
+
+
+ public void setIoClassList(ICdmImport[] ioList){
+ this.ioList = ioList;
+ }
+
+ @Override
+ public Class<ICdmImport>[] getIoClassList(){
+ if (ioClassList == null){
+ makeIoClassList();
+ }
+ return ioClassList;
+ }
+
+ /**
+ * @param ioClassList
+ */
+ public void setIoClassList(Class<ICdmImport>[] ioClassList){
+ this.ioClassList = ioClassList;
+ }
+
+ @Override
+ public CHECK getCheck() {
+ return this.check;
+ }
+
+ @Override
+ public void setCheck(CHECK check) {
+ this.check = check;
+ }
+
+
+ /**
+ * @return the editor
+ */
+ @Override
+ public EDITOR getEditor() {
+ return editor;
+ }
+
+ /**
+ * @param editor the editor to set
+ */
+ @Override
+ public void setEditor(EDITOR editor) {
+ ImportConfiguratorBase.editor = editor;
+ }
+
+ /**
+ * If true, no errors occur if objects are not found that should exist. This may
+ * be needed e.g. when only subsets of the data are imported.
+ * Default value is <cod>false</code>.
+ * @return the ignoreNull
+ */
+ @Override
+ public boolean isIgnoreNull() {
+ return ignoreNull;
+ }
+
+ /**
+ * @param ignoreNull the ignoreNull to set
+ */
+ @Override
+ public void setIgnoreNull(boolean ignoreNull) {
+ this.ignoreNull = ignoreNull;
+ }
+
+ @Override
+ public ICdmDataSource getDestination() {
+ return destination;
+ }
+ @Override
+ public void setDestination(ICdmDataSource destination) {
+ this.destination = destination;
+ }
+
+ @Override
+ public abstract Reference getSourceReference();
+ @Override
+ public void setSourceReference(Reference sourceReference) {
+ this.sourceReference = sourceReference;
+ }
+ @Override
+ public String getSourceReferenceTitle() {
+ return getSourceReference().getTitleCache();
+ }
+ @Override
+ public void setSourceReferenceTitle(String sourceReferenceTitle) {
+ getSourceReference().setTitleCache(sourceReferenceTitle, true);
+ }
+
+ @Override
+ public Person getCommentator() {
+ return commentator;
+ }
+
+ @Override
+ public void setCommentator(Person commentator) {
+ this.commentator = commentator;
+ }
+
+ /**
+ * @return the nomenclaturalCode
+ */
+ @Override
+ public NomenclaturalCode getNomenclaturalCode() {
+ return nomenclaturalCode;
+ }
+
+
+ /**
+ * @param nomenclaturalCode the nomenclaturalCode to set
+ */
+ @Override
+ public void setNomenclaturalCode(NomenclaturalCode nomenclaturalCode) {
+ this.nomenclaturalCode = nomenclaturalCode;
+ }
+
+ @Override
+ public UUID getClassificationUuid() {
+ return classificationUuid;
+ }
+
+
+ @Override
+ public void setClassificationUuid(UUID classificationUuid) {
+ this.classificationUuid = classificationUuid;
+ }
+
+
+ @Override
+ public UUID getSecUuid() {
+ return secUuid;
+ }
+ @Override
+ public void setSecUuid(UUID secUuid) {
+ this.secUuid = secUuid;
+ }
+
+ /**
+ * @return the sourceSecId
+ */
+ @Override
+ public Object getSourceSecId() {
+ return sourceSecId;
+ }
+
+ /**
+ * @param sourceSecId the sourceSecId to set
+ */
+ public void setSourceSecId(Object sourceSecId) {
+ this.sourceSecId = sourceSecId;
+ }
+
+
+ /**
+ * @return the featureMap
+ */
+ public Map<Integer, Feature> getFeatureMap() {
+ return featureMap;
+ }
+
+ /**
+ * @param featureMap the featureMap to set
+ */
+ public void setFeatureMap(Map<Integer, Feature> featureMap) {
+ this.featureMap = featureMap;
+ }
+
+
+ protected static Method getDefaultFunction(Class<?> clazz, String methodName){
+ try {
+ return clazz.getMethod(methodName, List.class) ;
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public String getDestinationNameString() {
+ if (this.getDestination() == null) {
+ return null;
+ } else {
+ return this.getDestination().getName().toString();
+ }
+ }
+
+ @Override
+ public String getSourceNameString() {
+ if (this.getSource() == null){
+ return null;
+ }else{
+ return this.getSource().toString();
+ }
+ }
+
+ /**
+ * The classification name for the first classification.
+ * Needs only to be defined if the import does not handle the naming
+ * itself (e.g. by using the taxon sec. reference title cache)
+ * @param classificationName the classificationName to set
+ */
+ public void setClassificationName(String classificationName) {
+ this.classificationName = classificationName;
+ }
+
+ /**
+ * @return the classificationName
+ */
+ public String getClassificationName() {
+ return classificationName;
+ }
+
+
+ public UUID getSourceRefUuid() {
+ return sourceRefUuid;
+ }
+
+
+
+ public void setSourceRefUuid(UUID sourceRefUuid) {
+ this.sourceRefUuid = sourceRefUuid;
+ }
+
+ @Override
+ public boolean isOmitTermLoading() {
+ return false;
+ }
+
+ @Override
+ public boolean isCreateNew(){
+ return false;
+ }
+
+ @Override
+ public UsernamePasswordAuthenticationToken getAuthenticationToken(){
+ return this.authenticationToken;
+ }
+
+ /*user interaction*/
+ public boolean isInteractWithUser() {
+ return askUserForHelp;
+ }
+
+ public void setInteractWithUser (boolean interaction){
+ askUserForHelp=interaction;
+ }
+
+
+
+}