/* * 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; /** RDF Sequence container. * * <p>This interface defines methods for accessing RDF Sequence resources. * These methods operate on the RDF statements contained in a model. The * Sequence implementation may cache state from the underlying model, so * objects should not be added to or removed from the Sequence by directly * manipulating its properties, whilst the Sequence is being * accessed through this interface.</p> * * <p>When a member is deleted from a sequence using this interface, or an * iterator returned through this interface, all the other members with * higher ordinals are renumbered to one below what they previously were.</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 Seq extends Container { /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, RDFNode o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, boolean o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, long o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, char o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, float o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, double o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, String o) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. * @param l the language of the value added . * @return this object to enable cascading of method calls. */ public Seq add(int index, String o, String l) ; /** Insert a new member into the sequence at the specified position. * * <p>The existing member at that position, and all others with higher indexes, * have their index increased by one.</p> * @param index The index of the new member, * @param o The member to be added. . * @return this object to enable cascading of method calls. */ public Seq add(int index, Object o) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public boolean getBoolean(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public byte getByte(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public short getShort(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public int getInt(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public long getLong(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public char getChar(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public float getFloat(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public double getDouble(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public String getString(int index) ; /** Get the language of the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public String getLanguage(int index) ; /** Get the member at a given index. * * <p>The supplied factory object is used to create the returned object.</p> * @return The member at the given index. * @param index The index of the required member. * @param f The factory object used to create the returned object. . */ @Deprecated public Resource getResource(int index, ResourceF f) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public Literal getLiteral(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public Resource getResource(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public RDFNode getObject(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public Bag getBag(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public Alt getAlt(int index) ; /** Get the member at a given index. * * @param index The index of the required member. . * @return The member at the given index. */ public Seq getSeq(int index) ; /** Remove the member at the specified index. * * <p>All other members with a higher index will have their index reduced by * one.</p> * @param index The index of the member to be removed. . * @return this object to enable cascading of method calls. */ public Seq remove(int index) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(RDFNode o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(boolean o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(long o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(char o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(float o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(double o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(String o) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. * @param l the language of the member sought . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(String o, String l) ; /** Return the index of a given member of the sequence. * * <p>If more the the same value appears more than once in the sequence, * it is undefined which of the indexes will be returned.</p> * * <p>If the member is not found in this sequence, a value of 0 is returned.</p> * @param o The member sought. . * @return an index of the member in this sequence or 0 if the * member is not found in this sequence. */ public int indexOf(Object o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then an exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, RDFNode o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, boolean o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, long o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, char o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, float o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, double o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, String o) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @param l The language of the value set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, String o, String l) ; /** Set the value at a given index in the sequence. * * <p>If the index is not in the range 1 to the size of the * sequence, then a Jena exception is raised.</p> * @param index The index whose member is to be set. * @param o The value to be set. * @throws SeqIndexBoundsException * @return this object to enable cascading method calls. */ public Seq set(int index, Object o) ; }