/*
* 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.jena.rdf.model;
/** <p>An RDF Alternative container.</p>
*
* <p>This interface defines methods for accessing RDF Alternative resources.
* These methods operate on the RDF statements contained in a model. The
* Alternative implementation may cache state from the underlying model, so
* objects should not be added to or removed from the Alternative by directly
* manipulating its properties, whilst the Alternative is being
* accessed through this interface.</p>
*
* <p>When a member is deleted from an Alternative using this interface, or an
* iterator returned through this interface, all the other members with
* higher ordinals are renumbered using an implementation dependendent
* algorithm.</p>
*
* <p>This interface provides methods supporting typed literals. This means
* that methods are provided which will translate a built in type, or an
* object to an RDF Literal. This translation is done by invoking the
* <CODE>toString()</CODE> method of the object, or its built in equivalent.
* The reverse translation is also supported. This is built in for built
* in types. Factory objects, provided by the application, are used
* for application objects.</p>
* <p>This interface provides methods for supporting enhanced resources. An
* enhanced resource is a resource to which the application has added
* behaviour. RDF containers are examples of enhanced resources built in
* to this package. Enhanced resources are supported by encapsulating a
* resource created by an implementation in another class which adds
* the extra behaviour. Factory objects are used to construct such
* enhanced resources.</p>
*/
public interface Alt extends Container {
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(RDFNode o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(boolean o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(long o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(char o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(float o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(double o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(String o);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(String o, String l);
/** Set the default value of this container.
* @param o The value to be set.
* @return This object to permit cascading calls.
*/
public Alt setDefault(Object o);
/** Return the default value for this resource.
* @return the default value for this resource.
*/
public RDFNode getDefault();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public Resource getDefaultResource();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public Literal getDefaultLiteral();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public boolean getDefaultBoolean();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public byte getDefaultByte();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public short getDefaultShort();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public int getDefaultInt();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public long getDefaultLong();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public char getDefaultChar();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public float getDefaultFloat();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public double getDefaultDouble();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public String getDefaultString();
/** Return the language of the default value for this resource.
* @return the language of the default value for this resource
*/
public String getDefaultLanguage();
/** Return the default value for this resource.
*
* <p>The factory class f is used to create the object which is returned.
* </p>
* @return the default value for this resource interpreted as the return
* type.
* @param f A factory class which will be used to create the
* object returned.
*/
@Deprecated public Resource getDefaultResource(ResourceF f);
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public Alt getDefaultAlt();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public Bag getDefaultBag();
/** Return the default value for this resource.
* @return the default value for this resource interpreted as the return
* type.
*/
public Seq getDefaultSeq();
/** Remove a value from the container.
* <p>The predicate of the statement <CODE>s</CODE> identifies the
* ordinal of the value to be removed. Once removed, the values in the
* container with a higher ordinal value are renumbered. The renumbering
* algorithm is implementation dependent.<p>
* @param s The statement to be removed from the model.
* @return this container to enable cascading calls.
*/
@Override
public Container remove(Statement s);
}