Author: alexdma
Date: Tue Aug  2 16:42:48 2011
New Revision: 1153185

URL: http://svn.apache.org/viewvc?rev=1153185&view=rev
Log:
STANBOL-304:
- Ontology scope factory methods deprecated in favor of variants with varargs. 
This will make it easier to create spaces without manually setting the top 
ontology.
- Documented more space-related APIs

Modified:
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpace.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpaceFactory.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CoreOntologySpaceImpl.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CustomOntologySpaceImpl.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
    
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpace.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpace.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpace.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpace.java
 Tue Aug  2 16:42:48 2011
@@ -1,19 +1,19 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
 
 import java.util.Collection;
@@ -23,168 +23,150 @@ import org.apache.stanbol.ontologymanage
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntology;
 
-
 /**
- * An ontology space identifies the set of OWL ontologies that should be
- * "active" in a given context, e.g. for a certain user session or a specific
- * reasoning service. Each ontology space has an ID and a top ontology that can
- * be used as a shared resource for mutual exclusion and locking strategies.
- * 
- * @author alessandro
- * 
+ * An ontology space identifies the set of OWL ontologies that should be 
"active" in a given context, e.g. for
+ * a certain user session or a specific reasoning service. Each ontology space 
has an ID and a top ontology
+ * that can be used as a shared resource for mutual exclusion and locking 
strategies.
  */
 public interface OntologySpace {
 
-       /**
-        * Adds the given ontology to the ontology space.
-        * 
-        * @param ontology
-        *            the ontology to be added
-        * @throws UnmodifiableOntologySpaceException
-        *             if the ontology space is read-only
-        */
-    void addOntology(OntologyInputSource ontologySource)
-                       throws UnmodifiableOntologySpaceException;
-
-       void addOntologySpaceListener(OntologySpaceListener listener);
-
-       void clearOntologySpaceListeners();
-
-       /**
-        * Returns a Unique Resource Identifier (URI) that identifies this 
ontology
-        * space. For instance, this URI could be the parent of (some/most of) 
the
-        * base URIs for the ontologies within this space.
-        * 
-        * @return the URI that identifies this ontology space
-        */
+    /**
+     * Adds the given ontology to the ontology space.
+     * 
+     * @param ontology
+     *            the ontology to be added
+     * @throws UnmodifiableOntologySpaceException
+     *             if the ontology space is read-only
+     */
+    void addOntology(OntologyInputSource ontologySource) throws 
UnmodifiableOntologySpaceException;
+
+    void addOntologySpaceListener(OntologySpaceListener listener);
+
+    void clearOntologySpaceListeners();
+
+    /**
+     * Returns a Unique Resource Identifier (URI) that identifies this 
ontology space. For instance, this URI
+     * could be the parent of (some/most of) the base URIs for the ontologies 
within this space.<br/>
+     * <br/>
+     * A possible way to construct these IDs is by concatenating 
<code>/{spacetype}</code> (e.g.
+     * <code>/custom</code>) to the scope IRI. However, this is 
implementation-dependent.
+     * 
+     * @return the URI that identifies this ontology space
+     */
     IRI getID();
 
-       /**
-        * Returns all the ontologies encompassed by this ontology space.
-        * 
-        * @return the set of ontologies in the ontology space
-        */
+    /**
+     * Returns all the ontologies encompassed by this ontology space.
+     * 
+     * @return the set of ontologies in the ontology space
+     */
     Set<OWLOntology> getOntologies();
 
-       /**
-        * Returns the ontology identified by the supplied <i>logical</i> IRI, 
if
-        * such an ontology has been loaded in this space.<br>
-        * <br>
-        * Note that ontologies are not identified by physical IRI here. 
There's no
-        * need to ask KReS for ontologies by physical IRI, use a browser or 
some
-        * other program instead!
-        * 
-        * @param ontologyIri
-        *            the <i>logical</i> identifier of the ontology to query 
for.
-        * 
-        * @return the requested ontology, or null if no ontology with this ID 
has
-        *         been loaded.
-        */
+    /**
+     * Returns the ontology identified by the supplied <i>logical</i> IRI, if 
such an ontology has been loaded
+     * in this space.<br>
+     * <br>
+     * Note that ontologies are not identified by physical IRI here. There's 
no need to ask KReS for
+     * ontologies by physical IRI, use a browser or some other program instead!
+     * 
+     * @param ontologyIri
+     *            the <i>logical</i> identifier of the ontology to query for.
+     * 
+     * @return the requested ontology, or null if no ontology with this ID has 
been loaded.
+     */
     OWLOntology getOntology(IRI ontologyIri);
-       
-       boolean containsOntology(IRI ontologyIri);
 
-       Collection<OntologySpaceListener> getOntologyScopeListeners();
+    boolean containsOntology(IRI ontologyIri);
+
+    Collection<OntologySpaceListener> getOntologyScopeListeners();
 
-       /**
-        * Returns the ontology that serves as a root module for this ontology
-        * space.
-        * 
-        * @return the root module of the ontology space
-        */
+    /**
+     * Returns the ontology that serves as a root module for this ontology 
space.
+     * 
+     * @return the root module of the ontology space
+     */
     OWLOntology getTopOntology();
 
-       /**
-        * Determines if the ontology identified by the supplied <i>logical</i> 
IRI
-        * has been loaded in this space.<br>
-        * <br>
-        * Note that ontologies are not identified by physical IRI here. 
There's no
-        * need to ask KReS for ontologies by physical IRI, use a browser or 
some
-        * other program instead!
-        * 
-        * @param ontologyIri
-        *            the <i>logical</i> identifier of the ontology to query 
for.
-        * 
-        * @return true if an ontology with this ID has been loaded in this 
space.
-        */
+    /**
+     * Determines if the ontology identified by the supplied <i>logical</i> 
IRI has been loaded in this space.<br>
+     * <br>
+     * Note that ontologies are not identified by physical IRI here. There's 
no need to ask KReS for
+     * ontologies by physical IRI, use a browser or some other program instead!
+     * 
+     * @param ontologyIri
+     *            the <i>logical</i> identifier of the ontology to query for.
+     * 
+     * @return true if an ontology with this ID has been loaded in this space.
+     */
     boolean hasOntology(IRI ontologyIri);
 
-       /**
-        * Determines if it is no longer possible to modify this space until it 
is
-        * torn down.
-        * 
-        * @return true if this space is write-locked, false otherwise.
-        */
+    /**
+     * Determines if it is no longer possible to modify this space until it is 
torn down.
+     * 
+     * @return true if this space is write-locked, false otherwise.
+     */
     boolean isLocked();
 
-       boolean isSilentMissingOntologyHandling();
+    boolean isSilentMissingOntologyHandling();
 
-       /**
-        * Removes the given ontology from the ontology space, if the ontology 
is a
-        * direct child of the top ontology. This means that the ontology must
-        * neither be the top ontology for this space, nor a subtree of an 
imported
-        * ontology. This is a conservative measure to avoid using undefined
-        * entities in the space.
-        * 
-        * @param ontology
-        *            the ontology to be removed
-        * @throws UnmodifiableOntologySpaceException
-        *             if the ontology space is read-only
-        */
-    void removeOntology(OntologyInputSource src)
-                       throws OntologySpaceModificationException;
-
-       void removeOntologySpaceListener(OntologySpaceListener listener);
-       
-       void setSilentMissingOntologyHandling(boolean silent);
-       
-       /**
-        * Sets the supplied ontology as the root ontology that (recursively)
-        * references the whole underlying ontology network. This actually
-        * <i>replaces</i> the ontology to be obtained by a call to
-        * <code>getTopOntology()</code> with this one, i.e. it is 
<code>not</code>
-        * equivalent to adding this ontology to a blank network!<br>
-        * <br>
-        * Implementations can arbitrarily behave with respect to the unset
-        * <code>createParent</code> parameter from the other method signature.
-        * 
-        * @param ontology
-        *            the new top ontology.
-        * @throws OntologySpaceModificationException
-        *             if the ontology space is read-only or the ontology could 
not
-        *             be removed.
-        */
-    void setTopOntology(OntologyInputSource ontologySource)
-                       throws UnmodifiableOntologySpaceException;
-
-       /**
-        * Sets the supplied ontology as the root ontology that (recursively)
-        * references the whole underlying ontology network. This actually
-        * <i>replaces</i> the ontology to be obtained by a call to
-        * <code>getTopOntology()</code> with this one, i.e. it is 
<code>not</code>
-        * equivalent to adding this ontology to a blank network!
-        * 
-        * @param ontology
-        *            the new top ontology.
-        * @param createParent
-        *            if true, a new ontology will be created and set as the top
-        *            ontology that will import this one.
-        * @throws UnmodifiableOntologySpaceException
-        *             if the ontology space is read-only.
-        */
-    void setTopOntology(OntologyInputSource ontologySource,
-            boolean createParent) throws UnmodifiableOntologySpaceException;
-
-       /**
-        * Bootstraps the ontology space. In some cases (such as with core and
-        * custom spaces) this also implies write-locking its ontologies.
-        */
+    /**
+     * Removes the given ontology from the ontology space, if the ontology is 
a direct child of the top
+     * ontology. This means that the ontology must neither be the top ontology 
for this space, nor a subtree
+     * of an imported ontology. This is a conservative measure to avoid using 
undefined entities in the space.
+     * 
+     * @param ontology
+     *            the ontology to be removed
+     * @throws UnmodifiableOntologySpaceException
+     *             if the ontology space is read-only
+     */
+    void removeOntology(OntologyInputSource src) throws 
OntologySpaceModificationException;
+
+    void removeOntologySpaceListener(OntologySpaceListener listener);
+
+    void setSilentMissingOntologyHandling(boolean silent);
+
+    /**
+     * Sets the supplied ontology as the root ontology that (recursively) 
references the whole underlying
+     * ontology network. This actually <i>replaces</i> the ontology to be 
obtained by a call to
+     * <code>getTopOntology()</code> with this one, i.e. it is 
<code>not</code> equivalent to adding this
+     * ontology to a blank network!<br>
+     * <br>
+     * Implementations can arbitrarily behave with respect to the unset 
<code>createParent</code> parameter
+     * from the other method signature.
+     * 
+     * @param ontology
+     *            the new top ontology.
+     * @throws OntologySpaceModificationException
+     *             if the ontology space is read-only or the ontology could 
not be removed.
+     */
+    void setTopOntology(OntologyInputSource ontologySource) throws 
UnmodifiableOntologySpaceException;
+
+    /**
+     * Sets the supplied ontology as the root ontology that (recursively) 
references the whole underlying
+     * ontology network. This actually <i>replaces</i> the ontology to be 
obtained by a call to
+     * <code>getTopOntology()</code> with this one, i.e. it is 
<code>not</code> equivalent to adding this
+     * ontology to a blank network!
+     * 
+     * @param ontology
+     *            the new top ontology.
+     * @param createParent
+     *            if true, a new ontology will be created and set as the top 
ontology that will import this
+     *            one.
+     * @throws UnmodifiableOntologySpaceException
+     *             if the ontology space is read-only.
+     */
+    void setTopOntology(OntologyInputSource ontologySource, boolean 
createParent) throws UnmodifiableOntologySpaceException;
+
+    /**
+     * Bootstraps the ontology space. In some cases (such as with core and 
custom spaces) this also implies
+     * write-locking its ontologies.
+     */
     void setUp();
 
-       /**
-        * Performs all required operations for disposing of an ontology space 
and
-        * releasing its resources (e.g. removing the writelock).
-        */
+    /**
+     * Performs all required operations for disposing of an ontology space and 
releasing its resources (e.g.
+     * removing the writelock).
+     */
     void tearDown();
 
 }

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpaceFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpaceFactory.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpaceFactory.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologySpaceFactory.java
 Tue Aug  2 16:42:48 2011
@@ -1,74 +1,131 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.semanticweb.owlapi.model.IRI;
 
-
 /**
- * An ontology space factory is responsible for the creation of new, readily
- * specialized ontology spaces from supplied ontology input sources.
- * 
- * Implementations should not call the setup method of the ontology space once
- * it is created, so that it is not locked from editing since creation time.
- * 
- * @author alessandro
+ * An ontology space factory is responsible for the creation of new, readily 
specialized ontology spaces from
+ * supplied ontology input sources.
  * 
+ * Implementations should not call the setup method of the ontology space once 
it is created, so that it is
+ * not locked from editing since creation time.
  */
 public interface OntologySpaceFactory {
 
-       /**
-        * Creates and sets up a default core ontology space.
-        * 
-        * @param scopeID
-        *            the unique identifier of the ontology scope that will
-        *            reference this space. It can be used for generating the
-        *            identifier for this ontology space.
-        * @param coreSource
-        *            the input source for the ontologies in this space.
-        * @return the generated ontology space.
-        */
-    CoreOntologySpace createCoreOntologySpace(IRI scopeID,
-            OntologyInputSource coreSource);
-
-       /**
-        * Creates and sets up a default custom ontology space.
-        * 
-        * @param scopeID
-        *            the unique identifier of the ontology scope that will
-        *            reference this space. It can be used for generating the
-        *            identifier for this ontology space.
-        * @param customSource
-        *            the input source for the ontologies in this space.
-        * @return the generated ontology space.
-        */
-    CustomOntologySpace createCustomOntologySpace(IRI scopeID,
-            OntologyInputSource customSource);
-
-       /**
-        * Creates and sets up a default session ontology space.
-        * 
-        * @param scopeID
-        *            the unique identifier of the ontology scope that will
-        *            reference this space. It can be used for generating the
-        *            identifier for this ontology space.
-        * @return the generated ontology space.
-        */
-    SessionOntologySpace createSessionOntologySpace(IRI scopeID);
+    /**
+     * Creates and sets up a default core ontology space. Equivalent to calling
+     * <code>createOntologySpace(IRI, SpaceTypes.CORE, 
OntologyInputSource...)</code>.
+     * 
+     * @deprecated Please use the varargs version of this method
+     *             {@link #createCoreOntologySpace(IRI, 
OntologyInputSource...)}.
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @param coreSource
+     *            the input source for the ontologies in this space.
+     * @return the generated ontology space.
+     */
+    CoreOntologySpace createCoreOntologySpace(IRI scopeId, OntologyInputSource 
coreSource);
+
+    /**
+     * Creates and sets up a default core ontology space. Equivalent to calling
+     * <code>createOntologySpace(IRI, SpaceTypes.CORE, 
OntologyInputSource...)</code>.
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @param coreSources
+     *            the sources of the optional ontologies to be immediately 
loaded upon space creation.
+     * @return the generated ontology space.
+     */
+    CoreOntologySpace createCoreOntologySpace(IRI scopeId, 
OntologyInputSource... coreSources);
+
+    /**
+     * Creates and sets up a default custom ontology space. Equivalent to 
calling
+     * <code>createOntologySpace(IRI, SpaceTypes.CUSTOM, 
OntologyInputSource...)</code>.
+     * 
+     * @deprecated Please use the varargs version of this method
+     *             {@link #createCustomOntologySpace(IRI, 
OntologyInputSource...)}.
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @param customSource
+     *            the input source for the ontologies in this space.
+     * @return the generated ontology space.
+     */
+    CustomOntologySpace createCustomOntologySpace(IRI scopeId, 
OntologyInputSource customSource);
+
+    /**
+     * Creates and sets up a default custom ontology space. Equivalent to 
calling
+     * <code>createOntologySpace(IRI, SpaceTypes.CUSTOM, 
OntologyInputSource...)</code>.
+     * 
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @param customSources
+     *            the sources of the optional ontologies to be immediately 
loaded upon space creation.
+     * @return the generated ontology space.
+     */
+    CustomOntologySpace createCustomOntologySpace(IRI scopeId, 
OntologyInputSource... customSources);
+
+    /**
+     * Creates an ontology space of the specified type.
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @param type
+     *            the space type.
+     * @param ontologySources
+     *            the sources of the optional ontologies to be immediately 
loaded upon space creation.
+     * @return the generated ontology space.
+     */
+    OntologySpace createOntologySpace(IRI scopeId, SpaceType type, 
OntologyInputSource... ontologySources);
+
+    /**
+     * Creates and sets up a default session ontology space. Equivalent to 
calling
+     * <code>createOntologySpace(IRI, SpaceTypes.SESSION)</code>.
+     * 
+     * @deprecated Please use the varargs version of this method
+     *             {@link #createSessionOntologySpace(IRI, 
OntologyInputSource...)}.
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @return the generated ontology space.
+     */
+    SessionOntologySpace createSessionOntologySpace(IRI scopeId);
+
+    /**
+     * Creates and sets up a default session ontology space. Equivalent to 
calling
+     * <code>createOntologySpace(IRI, SpaceTypes.SESSION, 
OntologyInputSource...)</code>.
+     * 
+     * @param scopeId
+     *            the unique identifier of the ontology scope that will 
reference this space. It can be used
+     *            for generating the identifier for this ontology space.
+     * @param sessionSources
+     *            the sources of the optional ontologies to be immediately 
loaded upon space creation.
+     * @return the generated ontology space.
+     */
+    SessionOntologySpace createSessionOntologySpace(IRI scopeId, 
OntologyInputSource... sessionSources);
 
 }

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java
 Tue Aug  2 16:42:48 2011
@@ -1,33 +1,55 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
 
+/**
+ * The possible types of ontology spaces managed by OntoNet.
+ */
 public enum SpaceType {
 
-       CORE("core"), CUSTOM("custom"), SESSION("session");
-
-       SpaceType(String suffix) {
-               this.suffix = suffix;
-       }
-
-       private String suffix;
-
-       public String getIRISuffix() {
-               return suffix;
-       }
+    /**
+     * Denotes a core space (1..1). It is instantiated upon creation of the 
scope.
+     */
+    CORE("core"),
+
+    /**
+     * Denotes a custom space (0..1).
+     */
+    CUSTOM("custom"),
+
+    /**
+     * Denotes a session space (0..n).
+     */
+    SESSION("session");
+
+    SpaceType(String suffix) {
+        this.suffix = suffix;
+    }
+
+    private String suffix;
+
+    /**
+     * Returns the preferred string to be attached to an ontology scope IRI 
(assuming it ends with a hash or
+     * slash character) in order to reference the included ontology space.
+     * 
+     * @return the preferred suffix for this space type.
+     */
+    public String getIRISuffix() {
+        return suffix;
+    }
 
 }

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java
 Tue Aug  2 16:42:48 2011
@@ -20,9 +20,6 @@ package org.apache.stanbol.ontologymanag
  * Thrown whenever an attempt to modify the ontology network within a read-only
  * ontology space (e.g. a core or custom space in a bootstrapped system) is
  * detected and denied.
- * 
- * @author alessandro
- * 
  */
 public class UnmodifiableOntologySpaceException extends
                OntologySpaceModificationException {

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CoreOntologySpaceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CoreOntologySpaceImpl.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CoreOntologySpaceImpl.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CoreOntologySpaceImpl.java
 Tue Aug  2 16:42:48 2011
@@ -1,19 +1,19 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
 
 import 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
@@ -23,55 +23,40 @@ import org.apache.stanbol.ontologymanage
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 
-
-public class CoreOntologySpaceImpl extends AbstractOntologySpaceImpl implements
-               CoreOntologySpace {
-
-       public static final String SUFFIX = SpaceType.CORE.getIRISuffix();
-//     static {
-//             SUFFIX = SpaceType.CORE.getIRISuffix();
-//     }
-       
-       public CoreOntologySpaceImpl(IRI scopeID, ClerezzaOntologyStorage 
storage) {
-
-               super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/"
-                               + SpaceType.CORE.getIRISuffix()), 
SpaceType.CORE/*, scopeID*/, storage);
-       }
-
-       public CoreOntologySpaceImpl(IRI scopeID, ClerezzaOntologyStorage 
storage,
-                       OWLOntologyManager ontologyManager) {
-               super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/"
-                               + SpaceType.CORE.getIRISuffix()), 
SpaceType.CORE, /*scopeID,*/ storage,
-                               ontologyManager);
-       }
-
-//     public CoreOntologySpaceImpl(IRI scopeID, OntologyInputSource 
topOntology) {
-//             super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/"
-//                             + SpaceType.CORE.getIRISuffix()), 
SpaceType.CORE, scopeID,
-//                             topOntology);
-//     }
-//
-//     public CoreOntologySpaceImpl(IRI scopeID, OntologyInputSource 
topOntology,
-//                     OWLOntologyManager ontologyManager) {
-//             super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/"
-//                             + SpaceType.CORE.getIRISuffix()), 
SpaceType.CORE, scopeID,
-//                             ontologyManager, topOntology);
-//     }
-
-       /**
-        * When set up, a core space is write-locked.
-        */
-       @Override
-       public synchronized void setUp() {
-               locked = true;
-       }
-
-       /**
-        * When torn down, a core space releases its write-lock.
-        */
-       @Override
-       public synchronized void tearDown() {
-               locked = false;
-       }
+/**
+ * Default implementation of the core ontology space.
+ */
+public class CoreOntologySpaceImpl extends AbstractOntologySpaceImpl 
implements CoreOntologySpace {
+
+    public static final String SUFFIX = SpaceType.CORE.getIRISuffix();
+
+    public CoreOntologySpaceImpl(IRI scopeID, ClerezzaOntologyStorage storage) 
{
+
+        super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/" + 
SpaceType.CORE.getIRISuffix()),
+                SpaceType.CORE/* , scopeID */, storage);
+    }
+
+    public CoreOntologySpaceImpl(IRI scopeID,
+                                 ClerezzaOntologyStorage storage,
+                                 OWLOntologyManager ontologyManager) {
+        super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/" + 
SpaceType.CORE.getIRISuffix()),
+                SpaceType.CORE, /* scopeID, */storage, ontologyManager);
+    }
+
+    /**
+     * When set up, a core space is write-locked.
+     */
+    @Override
+    public synchronized void setUp() {
+        locked = true;
+    }
+
+    /**
+     * When torn down, a core space releases its write-lock.
+     */
+    @Override
+    public synchronized void tearDown() {
+        locked = false;
+    }
 
 }

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CustomOntologySpaceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CustomOntologySpaceImpl.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CustomOntologySpaceImpl.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CustomOntologySpaceImpl.java
 Tue Aug  2 16:42:48 2011
@@ -27,6 +27,9 @@ import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntology;
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 
+/**
+ * Default implementation of the custom ontology space.
+ */
 public class CustomOntologySpaceImpl extends AbstractOntologySpaceImpl 
implements CustomOntologySpace {
 
     public static final String SUFFIX = SpaceType.CUSTOM.getIRISuffix();

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
 Tue Aug  2 16:42:48 2011
@@ -1,21 +1,22 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
 
+import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
 import 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.CustomOntologySpace;
@@ -25,6 +26,7 @@ import org.apache.stanbol.ontologymanage
 import 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceListener;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.ScopeRegistry;
 import 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.SessionOntologySpace;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
 import 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologySpaceException;
 import 
org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
 import org.semanticweb.owlapi.model.IRI;
@@ -34,13 +36,15 @@ import org.slf4j.LoggerFactory;
 /**
  * Utility class that generates default implementations of the three types of 
ontology scope.
  * 
- * @author alessandro
- * 
  */
 public class OntologySpaceFactoryImpl implements OntologySpaceFactory {
 
     protected Logger log = LoggerFactory.getLogger(getClass());
 
+    protected OWLOntologyManagerFactoryImpl mgrFactory;
+
+    protected OfflineConfiguration offline;
+
     protected ScopeRegistry registry;
 
     /*
@@ -48,59 +52,15 @@ public class OntologySpaceFactoryImpl im
      * Stanbol)
      */
     protected ClerezzaOntologyStorage storage;
-    
-    protected OWLOntologyManagerFactoryImpl mgrFactory;
 
-    public OntologySpaceFactoryImpl(ScopeRegistry registry, 
ClerezzaOntologyStorage storage, OWLOntologyManagerFactoryImpl mgrFactory) {
+    public OntologySpaceFactoryImpl(ScopeRegistry registry,
+                                    ClerezzaOntologyStorage storage,
+                                    OWLOntologyManagerFactoryImpl mgrFactory) {
         this.registry = registry;
         this.storage = storage;
         this.mgrFactory = mgrFactory;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceFactory#createCoreOntologySpace
-     * (org.semanticweb.owlapi.model.IRI,
-     * org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource)
-     */
-    @Override
-    public CoreOntologySpace createCoreOntologySpace(IRI scopeID, 
OntologyInputSource coreSource) {
-        CoreOntologySpace s = new CoreOntologySpaceImpl(scopeID, 
storage,mgrFactory.createOntologyManager(true));
-        configureSpace(s, scopeID, coreSource);
-        return s;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceFactory#createCustomOntologySpace
-     * (org.semanticweb.owlapi.model.IRI,
-     * org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource)
-     */
-    @Override
-    public CustomOntologySpace createCustomOntologySpace(IRI scopeID, 
OntologyInputSource customSource) {
-        CustomOntologySpace s = new CustomOntologySpaceImpl(scopeID, 
storage,mgrFactory.createOntologyManager(true));
-        configureSpace(s, scopeID, customSource);
-        return s;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * 
org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceFactory#createSessionOntologySpace
-     * (org.semanticweb.owlapi.model.IRI)
-     */
-    @Override
-    public SessionOntologySpace createSessionOntologySpace(IRI scopeID) {
-        SessionOntologySpace s = new SessionOntologySpaceImpl(scopeID, 
storage,mgrFactory.createOntologyManager(true));
-        // s.setUp();
-        return s;
-    }
-
     /**
      * Utility method for configuring ontology spaces after creating them.
      * 
@@ -108,7 +68,7 @@ public class OntologySpaceFactoryImpl im
      * @param scopeID
      * @param rootSource
      */
-    private void configureSpace(OntologySpace s, IRI scopeID, 
OntologyInputSource rootSource) {
+    private void configureSpace(OntologySpace s, IRI scopeID, 
OntologyInputSource... rootSource) {
         // FIXME: ensure that this is not null
         OntologyScope parentScope = registry.getScope(scopeID);
 
@@ -116,11 +76,74 @@ public class OntologySpaceFactoryImpl im
                 .addOntologySpaceListener((OntologySpaceListener) parentScope);
         // Set the supplied ontology's parent as the root for this space.
         try {
-            s.setTopOntology(rootSource, true);
+            // FIXME USE THE WHOLE ARRAY
+            s.setTopOntology(rootSource[0], true);
         } catch (UnmodifiableOntologySpaceException e) {
             log.error("Ontology space " + s.getID() + " was found locked at 
creation time!", e);
         }
         // s.setUp();
     }
 
+    @Override
+    public CoreOntologySpace createCoreOntologySpace(IRI scopeId, 
OntologyInputSource coreSource) {
+        return createCoreOntologySpace(scopeId, new OntologyInputSource[] 
{coreSource});
+    }
+
+    @Override
+    public CoreOntologySpace createCoreOntologySpace(IRI scopeId, 
OntologyInputSource... coreSources) {
+        CoreOntologySpace s = new CoreOntologySpaceImpl(scopeId, storage,
+                mgrFactory.createOntologyManager(true));
+        configureSpace(s, scopeId, coreSources);
+        return s;
+    }
+
+    @Override
+    public CustomOntologySpace createCustomOntologySpace(IRI scopeId, 
OntologyInputSource customSource) {
+        return createCustomOntologySpace(scopeId, new OntologyInputSource[] 
{customSource});
+    }
+
+    @Override
+    public CustomOntologySpace createCustomOntologySpace(IRI scopeId, 
OntologyInputSource... customSources) {
+        CustomOntologySpace s = new CustomOntologySpaceImpl(scopeId, storage,
+                mgrFactory.createOntologyManager(true));
+        configureSpace(s, scopeId, customSources);
+        return s;
+    }
+
+    @Override
+    public OntologySpace createOntologySpace(IRI scopeId,
+                                             SpaceType type,
+                                             OntologyInputSource... 
ontologySources) {
+        switch (type) {
+            case CORE:
+                return createCoreOntologySpace(scopeId, ontologySources);
+            case CUSTOM:
+                return createCustomOntologySpace(scopeId, ontologySources);
+            case SESSION:
+                return createSessionOntologySpace(scopeId, ontologySources);
+            default:
+                return null;
+        }
+    }
+
+    @Override
+    public SessionOntologySpace createSessionOntologySpace(IRI scopeId) {
+        return createSessionOntologySpace(scopeId, new OntologyInputSource[] 
{});
+    }
+
+    @Override
+    public SessionOntologySpace createSessionOntologySpace(IRI scopeId, 
OntologyInputSource... sessionSources) {
+        SessionOntologySpace s = new SessionOntologySpaceImpl(scopeId, storage,
+                mgrFactory.createOntologyManager(true));
+        for (OntologyInputSource src : sessionSources)
+            try {
+                s.addOntology(src);
+            } catch (UnmodifiableOntologySpaceException e) {
+                // Should never happen anyway...
+                continue;
+            }
+        // s.setUp();
+        return s;
+    }
+
 }

Modified: 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java?rev=1153185&r1=1153184&r2=1153185&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java
 (original)
+++ 
incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java
 Tue Aug  2 16:42:48 2011
@@ -1,19 +1,19 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
 
 import java.util.Random;
@@ -32,105 +32,84 @@ import org.semanticweb.owlapi.model.OWLO
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * Default implementation of the session ontology space.
+ */
+public class SessionOntologySpaceImpl extends AbstractOntologySpaceImpl 
implements SessionOntologySpace {
+
+    public static final String SUFFIX = SpaceType.SESSION.getIRISuffix();
+
+    public SessionOntologySpaceImpl(IRI scopeID, ClerezzaOntologyStorage 
store) {
+        // FIXME : sync session id with session space ID
+        super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/" + 
SpaceType.SESSION.getIRISuffix()
+                         + "-" + new Random().nextLong()), SpaceType.SESSION, 
store/* , scopeID */);
 
-public class SessionOntologySpaceImpl extends AbstractOntologySpaceImpl
-               implements SessionOntologySpace {
+        IRI iri = IRI.create(StringUtils.stripIRITerminator(getID()) + 
"/root.owl");
+        try {
+            setTopOntology(new 
RootOntologySource(ontologyManager.createOntology(iri), null), false);
+        } catch (OWLOntologyCreationException e) {
+            log.error("Could not create session space root ontology " + iri, 
e);
+        } catch (UnmodifiableOntologySpaceException e) {
+            // Should not happen...
+            log.error("Session space ontology " + iri
+                      + " was denied modification by the space itself. This 
should not happen.", e);
+        }
+    }
 
-       
-       public static final String SUFFIX = SpaceType.SESSION.getIRISuffix();
-//     static {
-//             SUFFIX = SpaceType.SESSION.getIRISuffix();
-//     }
-       
-       public SessionOntologySpaceImpl(IRI scopeID, ClerezzaOntologyStorage 
store) {
-               // FIXME : sync session id with session space ID
-               super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/"
-                               + SpaceType.SESSION.getIRISuffix() + "-"
-                               + new Random().nextLong()), SpaceType.SESSION, 
store/*, scopeID*/);
-
-               IRI iri = IRI.create(StringUtils.stripIRITerminator(getID())
-                               + "/root.owl");
-               try {
-                       setTopOntology(new RootOntologySource(ontologyManager
-                                       .createOntology(iri), null), false);
-               } catch (OWLOntologyCreationException e) {
-                       log.error("KReS :: Could not create session space root 
ontology "
-                                       + iri, e);
-               } catch (UnmodifiableOntologySpaceException e) {
-                       // Should not happen...
-                       log
-                                       .error(
-                                                       "KReS :: Session space 
ontology "
-                                                                       + iri
-                                                                       + " was 
denied modification by the space itself. This should not happen.",
-                                                       e);
-               }
-       }
-
-       public SessionOntologySpaceImpl(IRI scopeID, ClerezzaOntologyStorage 
store,
-                       OWLOntologyManager ontologyManager) {
-               
-               // FIXME : sync session id with session space ID
-               super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/"
-                               + SpaceType.SESSION.getIRISuffix() + "-"
-                               + new Random().nextLong()), SpaceType.SESSION, 
store, /*scopeID,*/ ontologyManager);
-               
-               Logger log = LoggerFactory.getLogger(getClass());
-               IRI iri = IRI.create(StringUtils.stripIRITerminator(getID())
-                               + "/root.owl");
-               try {
-                       setTopOntology(new RootOntologySource(ontologyManager
-                                       .createOntology(iri), null), false);
-               } catch (OWLOntologyCreationException e) {
-                       log.error("KReS :: Could not create session space root 
ontology "
-                                       + iri, e);
-               } catch (UnmodifiableOntologySpaceException e) {
-                       // Should not happen...
-                       log
-                                       .error(
-                                                       "KReS :: Session space 
ontology "
-                                                                       + iri
-                                                                       + " was 
denied modification by the space itself. This should not happen.",
-                                                       e);
-               }
-       }
-
-       /**
-        * Session spaces expose their ontology managers.
-        */
-       @Override
-       public OWLOntologyManager getOntologyManager() {
-               return ontologyManager;
-       }
-
-       /**
-        * Once it is set up, a session space is write-enabled.
-        */
-       @Override
-       public synchronized void setUp() {
-               locked = false;
-       }
-
-       @Override
-       public synchronized void tearDown() {
-               // TODO Auto-generated method stub
-       }
+    public SessionOntologySpaceImpl(IRI scopeID,
+                                    ClerezzaOntologyStorage store,
+                                    OWLOntologyManager ontologyManager) {
+
+        // FIXME : sync session id with session space ID
+        super(IRI.create(StringUtils.stripIRITerminator(scopeID) + "/" + 
SpaceType.SESSION.getIRISuffix()
+                         + "-" + new Random().nextLong()), SpaceType.SESSION, 
store, /* scopeID, */
+                ontologyManager);
+
+        Logger log = LoggerFactory.getLogger(getClass());
+        IRI iri = IRI.create(StringUtils.stripIRITerminator(getID()) + 
"/root.owl");
+        try {
+            setTopOntology(new 
RootOntologySource(ontologyManager.createOntology(iri), null), false);
+        } catch (OWLOntologyCreationException e) {
+            log.error("Could not create session space root ontology " + iri, 
e);
+        } catch (UnmodifiableOntologySpaceException e) {
+            // Should not happen...
+            log.error("Session space ontology " + iri
+                      + " was denied modification by the space itself. This 
should not happen.", e);
+        }
+    }
 
     @Override
     public void attachSpace(OntologySpace space, boolean skipRoot) throws 
UnmodifiableOntologySpaceException {
         if (!(space instanceof SessionOntologySpace)) {
-        OWLOntology o = space.getTopOntology();
-        // This does the append thingy
-        log.debug("Attaching " + o + " TO " + getTopOntology() + " ...");
-        try {
-            // It is in fact the addition of the core space top ontology to the
-            // custom space, with import statements and all.
-            addOntology(new RootOntologySource(o, null));
-            // log.debug("ok");
-        } catch (Exception ex) {
-            log.error("FAILED", ex);
-        }
+            OWLOntology o = space.getTopOntology();
+            // This does the append thingy
+            log.debug("Attaching " + o + " TO " + getTopOntology() + " ...");
+            try {
+                // It is in fact the addition of the core space top ontology 
to the
+                // custom space, with import statements and all.
+                addOntology(new RootOntologySource(o, null));
+                // log.debug("ok");
+            } catch (Exception ex) {
+                log.error("FAILED", ex);
+            }
         }
     }
 
+    @Override
+    public OWLOntologyManager getOntologyManager() {
+        // Session spaces do expose their ontology managers.
+        return ontologyManager;
+    }
+
+    @Override
+    public synchronized void setUp() {
+        // Once it is set up, a session space is write-enabled.
+        locked = false;
+    }
+
+    @Override
+    public synchronized void tearDown() {
+        // TODO Auto-generated method stub
+    }
+
 }


Reply via email to