/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.modelgenerator.ldap.ui.wizards;
import java.util.Collection;
import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
import org.teiid.core.designer.util.StringConstants;
/**
*
*/
public interface ILdapEntryNode extends StringConstants {
/**
* LDAP context separator
*/
String SEPARATOR = COMMA;
/**
* @return the original entry from the search
*/
IEntry getEntry();
/**
* @return parent of this node
*/
ILdapEntryNode getParent();
/**
* @return the non-qualified name of the ldap node
*/
String getSourceBaseName();
/**
* @return the label
*/
String getLabel();
/**
* @param label
*/
void setLabel(String label);
/**
* @return source name suffix
*/
String getSourceNameSuffix();
/**
* @param tableNameSuffix
*/
void setSourceNameSuffix(String tableNameSuffix);
/**
* @return the fully qualified name of the ldap node
*/
String getSourceName();
/**
* @return is this the root node
*/
boolean isRoot();
/**
* @return attributes
*/
Collection<ILdapAttributeNode> getAttributes();
/**
* Add the given attribute
*
* @param attribute
*
* @return true if added, false otherwise
*/
boolean addAttribute(ILdapAttributeNode attribute);
/**
* Remove the given attribute
*
* @param attribute
*
* @return true if removed, false otherwise
*/
boolean removeAttribute(ILdapAttributeNode attribute);
/**
* @return true if node has children
*/
boolean hasChildren();
/**
* @return node's children
*/
Object[] getChildren();
}