use of org.olat.ims.cp.objects.CPFile in project OpenOLAT by OpenOLAT.
the class CPCore method addElement.
// *** CP manipulation ***
/**
* adds an element as a child to the element with id parentId if the element
* with parentId is not found, it returns false
*
* if adding was successful, it returns true
*/
public boolean addElement(DefaultElement newElement, String parentId, int position) {
DefaultElement parentElement = rootNode.getElementByIdentifier(parentId);
if (parentElement == null) {
throw new OLATRuntimeException(CPOrganizations.class, "Parent-element with identifier:\"" + parentId + "\" not found!", new Exception());
}
if (parentElement instanceof CPItem) {
// parent is a <item>
if (newElement instanceof CPItem) {
// only CPItems can be added to CPItems
CPItem item = (CPItem) parentElement;
item.addItemAt((CPItem) newElement, position);
return true;
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <item> elements to an <item>-element", new Exception());
}
} else if (parentElement instanceof CPOrganization) {
// parent is a <organization>
if (newElement instanceof CPItem) {
// add a new item to organization element
CPOrganization org = (CPOrganization) parentElement;
org.addItemAt((CPItem) newElement, position);
return true;
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <item> elements to an <organization>-element", new Exception());
}
} else if (parentElement instanceof CPResource) {
// parent is a <resource>
CPResource resource = (CPResource) parentElement;
if (newElement instanceof CPFile) {
resource.addFile((CPFile) newElement);
} else if (newElement instanceof CPDependency) {
resource.addDependency((CPDependency) newElement);
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <dependency> or <file> elements to a Resource", new Exception());
}
return true;
} else if (parentElement instanceof CPResources) {
// parent is <resources> !!see the "s" at the end ;)
if (newElement instanceof CPResource) {
CPResources resources = (CPResources) parentElement;
resources.addResource((CPResource) newElement);
return true;
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <resource>elements to the <resources> element", new Exception());
}
}
return false;
}
use of org.olat.ims.cp.objects.CPFile in project OpenOLAT by OpenOLAT.
the class ContentPackage method updatePage.
protected void updatePage(CPPage page) {
DefaultElement ele = cpcore.getElementByIdentifier(page.getIdentifier());
if (ele instanceof CPItem) {
CPItem item = (CPItem) ele;
item.setTitle(page.getTitle());
item.setMetadata(page.getMetadata());
String itemIdentifierRef = item.getIdentifierRef();
if (itemIdentifierRef == null || itemIdentifierRef.equals("")) {
// This item has no linked resource yet. Add one if there is a page file
// attached.
VFSLeaf pageFile = page.getPageFile();
if (pageFile != null) {
CPResource res = new CPResource();
CPFile file = new CPFile(pageFile);
res.addFile(file);
// TODO:GW Set type according to file
res.setType("text/html");
res.setHref(file.getHref());
item.setIdentifierRef(res.getIdentifier());
cpcore.getRootNode().getResources().addResource(res);
}
} else {
// this item has already a linked resource
// this is not supported, we don't change linked resources...
}
} else if (ele instanceof CPOrganization) {
CPOrganization organization = (CPOrganization) ele;
organization.setTitle(page.getTitle());
} else {
// ERROR: this shouldn't be
throw new OLATRuntimeException("Error while updating manifest with new Page-Data. Invalid identifier " + page.getIdentifier(), null);
}
}
use of org.olat.ims.cp.objects.CPFile in project openolat by klemens.
the class CPCore method addElement.
// *** CP manipulation ***
/**
* adds an element as a child to the element with id parentId if the element
* with parentId is not found, it returns false
*
* if adding was successful, it returns true
*/
public boolean addElement(DefaultElement newElement, String parentId, int position) {
DefaultElement parentElement = rootNode.getElementByIdentifier(parentId);
if (parentElement == null) {
throw new OLATRuntimeException(CPOrganizations.class, "Parent-element with identifier:\"" + parentId + "\" not found!", new Exception());
}
if (parentElement instanceof CPItem) {
// parent is a <item>
if (newElement instanceof CPItem) {
// only CPItems can be added to CPItems
CPItem item = (CPItem) parentElement;
item.addItemAt((CPItem) newElement, position);
return true;
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <item> elements to an <item>-element", new Exception());
}
} else if (parentElement instanceof CPOrganization) {
// parent is a <organization>
if (newElement instanceof CPItem) {
// add a new item to organization element
CPOrganization org = (CPOrganization) parentElement;
org.addItemAt((CPItem) newElement, position);
return true;
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <item> elements to an <organization>-element", new Exception());
}
} else if (parentElement instanceof CPResource) {
// parent is a <resource>
CPResource resource = (CPResource) parentElement;
if (newElement instanceof CPFile) {
resource.addFile((CPFile) newElement);
} else if (newElement instanceof CPDependency) {
resource.addDependency((CPDependency) newElement);
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <dependency> or <file> elements to a Resource", new Exception());
}
return true;
} else if (parentElement instanceof CPResources) {
// parent is <resources> !!see the "s" at the end ;)
if (newElement instanceof CPResource) {
CPResources resources = (CPResources) parentElement;
resources.addResource((CPResource) newElement);
return true;
} else {
throw new OLATRuntimeException(CPOrganizations.class, "you can only add <resource>elements to the <resources> element", new Exception());
}
}
return false;
}
use of org.olat.ims.cp.objects.CPFile in project openolat by klemens.
the class ContentPackage method updatePage.
protected void updatePage(CPPage page) {
DefaultElement ele = cpcore.getElementByIdentifier(page.getIdentifier());
if (ele instanceof CPItem) {
CPItem item = (CPItem) ele;
item.setTitle(page.getTitle());
item.setMetadata(page.getMetadata());
String itemIdentifierRef = item.getIdentifierRef();
if (itemIdentifierRef == null || itemIdentifierRef.equals("")) {
// This item has no linked resource yet. Add one if there is a page file
// attached.
VFSLeaf pageFile = page.getPageFile();
if (pageFile != null) {
CPResource res = new CPResource();
CPFile file = new CPFile(pageFile);
res.addFile(file);
// TODO:GW Set type according to file
res.setType("text/html");
res.setHref(file.getHref());
item.setIdentifierRef(res.getIdentifier());
cpcore.getRootNode().getResources().addResource(res);
}
} else {
// this item has already a linked resource
// this is not supported, we don't change linked resources...
}
} else if (ele instanceof CPOrganization) {
CPOrganization organization = (CPOrganization) ele;
organization.setTitle(page.getTitle());
} else {
// ERROR: this shouldn't be
throw new OLATRuntimeException("Error while updating manifest with new Page-Data. Invalid identifier " + page.getIdentifier(), null);
}
}
Aggregations