/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Sirius.server.middleware.types;
import Sirius.util.Editable;
import Sirius.util.Groupable;
import Sirius.util.Renderable;
import org.apache.log4j.Logger;
import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import de.cismet.cids.dynamics.CidsBean;
import de.cismet.cids.tools.fromstring.StringCreateable;
import de.cismet.cids.tools.tostring.StringConvertable;
/**
* DOCUMENT ME!
*
* @author srichter
* @version $Revision$, $Date$
*/
public interface MetaObject extends Sirius.server.localserver.object.Object,
Editable,
Groupable,
Renderable,
StringConvertable,
StringCreateable,
Serializable {
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
HashMap getAllClasses();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
CidsBean getBean();
/**
* getter for classKey.
*
* @return classKey
*/
String getClassKey();
/**
* getter for complex editor.
*
* @return complex editor
*/
@Override
String getComplexEditor();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
String getDebugString();
/**
* getter for description.
*
* @return description
*/
String getDescription();
/**
* getter for domain.
*
* @return domain
*/
String getDomain();
/**
* Getter for property editor.
*
* @return Value of property editor.
*/
String getEditor();
/**
* getter for grouping criterion in this case the domain (in the sense of the group by clause in SQL).
*
* @return grouping criterion
*/
@Override
String getGroup();
@Override
int getId();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
Logger getLogger();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
MetaClass getMetaClass();
/**
* getter for name.
*
* @return name
*/
String getName();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
String getPropertyString();
/**
* getter for renderer.
*
* @return renderer
*/
@Override
String getRenderer();
/**
* getter for simple editor.
*
* @return siomple editor
*/
@Override
String getSimpleEditor();
/**
* DOCUMENT ME!
*
* @param classKeys DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
Collection getURLs(Collection classKeys);
/**
* DOCUMENT ME!
*
* @param classKeys DOCUMENT ME!
* @param urlNames DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
Collection getURLsByName(Collection classKeys, Collection urlNames);
/**
* Getter for property changed.
*
* @return Value of property changed.
*/
boolean isChanged();
/**
* DOCUMENT ME!
*
* @param tester DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
boolean propertyEquals(MetaObject tester);
/**
* DOCUMENT ME!
*
* @param classes DOCUMENT ME!
*/
void setAllClasses(HashMap classes);
/**
* DOCUMENT ME!
*/
void setAllClasses();
/**
* sets the same status for all Objects in the hirarchy recursively.
*
* @param status DOCUMENT ME!
*/
void setAllStatus(int status);
/**
* DOCUMENT ME!
*/
void setArrayKey2PrimaryKey();
/**
* Setter for property changed.
*
* @param changed New value of property changed.
*/
void setChanged(boolean changed);
/**
* Setter for property editor.
*
* @param editor New value of property editor.
*/
void setEditor(String editor);
/**
* DOCUMENT ME!
*
* @param metaClass DOCUMENT ME!
*/
void setMetaClass(MetaClass metaClass);
/**
* setter for the primary key sets the value of the attribute being primary key.
*
* @param key value of the key
*
* @return whether a primary key was found and its value set
*/
boolean setPrimaryKey(Object key);
/**
* Setter for property renderer.
*
* @param renderer New value of property renderer.
*/
void setRenderer(String renderer);
/**
* DOCUMENT ME!
*
* @param classes DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
String toString(HashMap classes);
}