// Path: populous-api/src/main/java/uk/ac/ebi/spot/webulous/model/AutoIDGenerator.java
// public interface AutoIDGenerator {
// 
//     String getNextID(Class<? extends OWLEntity> type) throws AutoIDException;
//     void setEntityPrefs(EntityCreation entitiesPrefs);  
//     EntityCreation getEntitiesPrefs ();
// 
//     void initialise();
// }
// 
// Path: populous-api/src/main/java/uk/ac/ebi/spot/webulous/model/EntityCreation.java
// public interface EntityCreation {
// 
//     URI getDefaultBaseURI() ;
// 
// 
//     boolean useDefaultBaseURI();
// 
// 
//     String getDefaultSeparator();
// 
// 
//     Class<? extends AutoIDGenerator> getAutoIDGeneratorClass();
// 
// 
//     String getAutoIDGeneratorName();
// 
// 
//     String getPrefix();
// 
// 
//     String getSuffix();
// 
// 
//     int getAutoIDDigitCount();
// 
// 
//     int getAutoIDStart();
// 
// 
//     int getAutoIDEnd();
// 
// 
//     boolean isFragmentAutoGenerated();
// 
// 
//     boolean isGenerateNameLabel();
// 
// 
//     URI getNameLabelURI() ;
// 
// 
//     String getNameLabelLang();
// 
// 
//     boolean isGenerateIDLabel();
// 
// 
//     Class<? extends LabelDescriptor> getLabelDescriptorClass() ;
// 
// 
// 
// }
// 
// Path: populous-api/src/main/java/uk/ac/ebi/spot/webulous/model/LabelDescriptor.java
// public interface LabelDescriptor {
// 
//     String getLanguage(EntityCreation entityPrefs);
// 
//     URI getURI(EntityCreation entityPrefs);
// }


import org.semanticweb.owlapi.vocab.OWLRDFVocabulary;
import uk.ac.ebi.spot.webulous.model.AutoIDGenerator;
import uk.ac.ebi.spot.webulous.model.EntityCreation;
import uk.ac.ebi.spot.webulous.model.LabelDescriptor;
import java.net.URI;
package uk.ac.ebi.spot.webulous.entity;



/*
 * Copyright (C) 2007, University of Manchester
 *
 * Modifications to the initial code base are copyright of their
 * respective authors, or their employers as appropriate.  Authorship
 * of the modifications may be determined from the ChangeLog placed at
 * the end of this file.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

/**
 * Author: Simon Jupp<br>
 * Date: Dec 20, 2010<br>
 * The University of Manchester<br>
 * Bio-Health Informatics Group<br>
 */
public class SimpleEntityCreation implements EntityCreation {


    private String DEFAULT_BASE_URI = "http://www.co-ode.org/ontologies/ont.owl#";
    private boolean USE_DEFAULT_BASE_URI = true;

    private String DEFAULT_URI_SEPARATOR = "#";

    private boolean USE_AUTO_ID_FOR_FRAGMENT = false;

    private boolean NAME_LABEL_GENERATE = false;
    private String NAME_LABEL_URI = OWLRDFVocabulary.RDFS_LABEL.toString();
    private String NAME_LABEL_LANG = "en";

    private boolean ID_LABEL_GENERATE = false;
    private String ID_LABEL_URI;
    private String ID_LABEL_LANG;

    private String AUTO_ID_GENERATOR;
    private String DEFAULT_AUTO_ID_GENERATOR_CLASS_NAME = "uk.ac.ebi.spot.webulous.entity.PseudoRandomAutoIDGenerator";

    private String AUTO_ID_PREFIX = "[type]";
    private String AUTO_ID_SUFFIX = "";
    private int AUTO_ID_SIZE = 20;
    private int AUTO_ID_START = 1;
    private int AUTO_ID_END = -1;

    private String DEFAULT_LABEL_DESCRIPTOR_CLASS = "uk.ac.ebi.spot.webulous.entity.CustomLabelDescriptor";


    public URI getDefaultBaseURI() {
        return URI.create(DEFAULT_BASE_URI);
    }


    public boolean useDefaultBaseURI() {
        return USE_DEFAULT_BASE_URI;
    }


    public void setUseDefaultBaseURI(boolean use) {
        USE_DEFAULT_BASE_URI = use;
    }


// Path: populous-api/src/main/java/uk/ac/ebi/spot/webulous/model/AutoIDGenerator.java
// public interface AutoIDGenerator {
// 
//     String getNextID(Class<? extends OWLEntity> type) throws AutoIDException;
//     void setEntityPrefs(EntityCreation entitiesPrefs);  
//     EntityCreation getEntitiesPrefs ();
// 
//     void initialise();
// }
// 
// Path: populous-api/src/main/java/uk/ac/ebi/spot/webulous/model/EntityCreation.java
// public interface EntityCreation {
// 
//     URI getDefaultBaseURI() ;
// 
// 
//     boolean useDefaultBaseURI();
// 
// 
//     String getDefaultSeparator();
// 
// 
//     Class<? extends AutoIDGenerator> getAutoIDGeneratorClass();
// 
// 
//     String getAutoIDGeneratorName();
// 
// 
//     String getPrefix();
// 
// 
//     String getSuffix();
// 
// 
//     int getAutoIDDigitCount();
// 
// 
//     int getAutoIDStart();
// 
// 
//     int getAutoIDEnd();
// 
// 
//     boolean isFragmentAutoGenerated();
// 
// 
//     boolean isGenerateNameLabel();
// 
// 
//     URI getNameLabelURI() ;
// 
// 
//     String getNameLabelLang();
// 
// 
//     boolean isGenerateIDLabel();
// 
// 
//     Class<? extends LabelDescriptor> getLabelDescriptorClass() ;
// 
// 
// 
// }
// 
// Path: populous-api/src/main/java/uk/ac/ebi/spot/webulous/model/LabelDescriptor.java
// public interface LabelDescriptor {
// 
//     String getLanguage(EntityCreation entityPrefs);
// 
//     URI getURI(EntityCreation entityPrefs);
// }


// Path: populous-oppl/src/main/java/uk/ac/ebi/spot/webulous/entity/SimpleEntityCreation.java
import org.semanticweb.owlapi.vocab.OWLRDFVocabulary;
import uk.ac.ebi.spot.webulous.model.AutoIDGenerator;
import uk.ac.ebi.spot.webulous.model.EntityCreation;
import uk.ac.ebi.spot.webulous.model.LabelDescriptor;
import java.net.URI;

package uk.ac.ebi.spot.webulous.entity;



/*
 * Copyright (C) 2007, University of Manchester
 *
 * Modifications to the initial code base are copyright of their
 * respective authors, or their employers as appropriate.  Authorship
 * of the modifications may be determined from the ChangeLog placed at
 * the end of this file.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

/**
 * Author: Simon Jupp<br>
 * Date: Dec 20, 2010<br>
 * The University of Manchester<br>
 * Bio-Health Informatics Group<br>
 */
public class SimpleEntityCreation implements EntityCreation {


    private String DEFAULT_BASE_URI = "http://www.co-ode.org/ontologies/ont.owl#";
    private boolean USE_DEFAULT_BASE_URI = true;

    private String DEFAULT_URI_SEPARATOR = "#";

    private boolean USE_AUTO_ID_FOR_FRAGMENT = false;

    private boolean NAME_LABEL_GENERATE = false;
    private String NAME_LABEL_URI = OWLRDFVocabulary.RDFS_LABEL.toString();
    private String NAME_LABEL_LANG = "en";

    private boolean ID_LABEL_GENERATE = false;
    private String ID_LABEL_URI;
    private String ID_LABEL_LANG;

    private String AUTO_ID_GENERATOR;
    private String DEFAULT_AUTO_ID_GENERATOR_CLASS_NAME = "uk.ac.ebi.spot.webulous.entity.PseudoRandomAutoIDGenerator";

    private String AUTO_ID_PREFIX = "[type]";
    private String AUTO_ID_SUFFIX = "";
    private int AUTO_ID_SIZE = 20;
    private int AUTO_ID_START = 1;
    private int AUTO_ID_END = -1;

    private String DEFAULT_LABEL_DESCRIPTOR_CLASS = "uk.ac.ebi.spot.webulous.entity.CustomLabelDescriptor";


    public URI getDefaultBaseURI() {
        return URI.create(DEFAULT_BASE_URI);
    }


    public boolean useDefaultBaseURI() {
        return USE_DEFAULT_BASE_URI;
    }


    public void setUseDefaultBaseURI(boolean use) {
        USE_DEFAULT_BASE_URI = use;
    }


    public void setDefaultBaseURI(String defaultBase) {