de.fuberlin.wiwiss.d2rq.map
Interface Prefixable

All Superinterfaces:
java.lang.Cloneable
All Known Implementing Classes:
BlankNodeIdentifier, BlankNodeMaker, Column, ContainsRestriction, Join, LiteralMaker, MaxLengthRestriction, Pattern, PropertyBridge, RegexRestriction, UriMaker

public interface Prefixable
extends java.lang.Cloneable

Implementing instances provide a uniform way of creating a copy of themselves in which physical database table names are replaced by aliases. Classes that implement this interface are called with a combination of c=obj.clone(); c.prefixTables(prefixer)

Author:
jg
See Also:
TablePrefixer

Method Summary
 java.lang.Object clone()
          Make a shallow copy of this.
 void prefixTables(TablePrefixer prefixer)
          Changes the fields in a newly created clone that are to be modified when making aliasses.
 

Method Detail

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Make a shallow copy of this. General advice: Do not overwrite clone(). prefixTables() works best with shallow copy which Object implements. Issues: I have not found a (preferred) static equivalent of clone(). Since Objects clone() method is protected, we cannot just declare Cloneable, if we want to call clone() from outside of that class hierarchy. Instead it must be public and implemented in each Prefixable class by a call to super.clone().

Throws:
java.lang.CloneNotSupportedException

prefixTables

public void prefixTables(TablePrefixer prefixer)
Changes the fields in a newly created clone that are to be modified when making aliasses.

Parameters:
prefixer - does the actual prefixing of simple and complex types.