// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.model;
import java.util.List;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.repository.model.nodes.IProjectRepositoryNode;
/**
* DOC nrousseau class global comment. Detailled comment
*/
public interface IRepositoryNode {
/**
* Represents differents type of node.<br/>
*
* $Id: RepositoryNode.java 914 2006-12-08 08:28:53 +0000 (鏄熸湡浜� 08 锟�?浜屾湀 2006) bqian $
*
*/
public enum ENodeType {
SYSTEM_FOLDER,
// Represents a folder created by the system (Process, Documentation). Thoses folders cannot be removed, moved
// or rename by users.
STABLE_SYSTEM_FOLDER,
// Same as SYSTEM_FOLDER, but users cannot create sub-folders.
SIMPLE_FOLDER,
// Represents a folder created by a user. Those folders can be rename, moved or removed.
REPOSITORY_ELEMENT,
// Represents an object such as a process or a table.
REFERENCED_PROJECT,
// Represents a referenced project;
RELATED_FOLDER,
// Represents a folder related with others;
TDQ_REPOSITORY_ELEMENT;
}
/**
*
* Represents available properties on a node.<br/>
*
* $Id: RepositoryNode.java 914 2006-12-08 08:28:53 +0000 (鏄熸湡浜� 08 锟�?浜屾湀 2006) bqian $
*
*/
public enum EProperties {
LABEL,
CONTENT_TYPE;
}
public IProjectRepositoryNode getRoot();
public RepositoryNode getParent();
public List<IRepositoryNode> getChildren();
public IRepositoryViewObject getObject();
public ERepositoryObjectType getContentType();
public String getLabel();
public ENodeType getType();
public ERepositoryObjectType getObjectType();
public String getId();
public Object getProperties(EProperties key);
public boolean hasChildren();
public boolean isBin();
public void dispose();
public boolean isDisposed();
/**
*
* if withDeleted is 'true',will get all children which contain logical delete elements.
*
* @param withDeleted
* @return
*/
public List<IRepositoryNode> getChildren(boolean withDeleted);
}