Class ProgramPage
- java.lang.Object
-
- org.ametys.plugins.odfweb.repository.AbstractOdfPage
-
- org.ametys.plugins.odfweb.repository.ProgramPage
-
- All Implemented Interfaces:
TagAwareAmetysObject
,AmetysObject
,DataAwareAmetysObject
,ModelLessDataAwareAmetysObject
,DataHolder
,ModelLessDataHolder
,TraversableAmetysObject
,MetadataAwarePagesContainer
,Page
,PagesContainer
,SiteAwareAmetysObject
public class ProgramPage extends AbstractOdfPage
Page representing aProgram
or aSubProgram
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ProgramPage.AbstractTreeIterator<T>
Breadth first search iterator for tree structure Each node can provide an iterator that will be put in the end of the queue.(package private) static class
ProgramPage.ProgramPartTraverser
Program part traverser.-
Nested classes/interfaces inherited from interface org.ametys.web.repository.page.Page
Page.LinkType, Page.PageType
-
-
Field Summary
Fields Modifier and Type Field Description private ProgramPageFactory
_factory
private Program
_parent
private Page
_parentPage
private String
_path
private AbstractProgram
_program
private Page
_root
-
Constructor Summary
Constructors Constructor Description ProgramPage(ProgramPageFactory factory, Page root, AbstractProgram program, String path, Program parent, Page parentPage)
Constructor for program page holding aProgram
orSubProgram
ProgramPage(ProgramPageFactory factory, Page root, Program program, Page parentPage)
Constructor for program page holding aProgram
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) String
_computeLevelsPath()
Compute the path from the root odf page, representing the first and second level pages.private boolean
_filterByName(ProgramItem programItem, String name)
private Optional<ProgramItem>
_findChild(TraversableProgramPart parent, String name)
private Optional<Page>
_getChildPage(TraversableProgramPart parent, String name)
private CoursePage
_toChildCoursePage(Course course)
private Page
_toChildPage(ProgramItem child)
private ProgramPage
_toChildProgramPage(SubProgram child)
private Stream<ProgramItem>
_traverseChildren(TraversableProgramPart parent)
<A extends AmetysObject>
AgetChild(String path)
Retrieves a given child from its relative path.AmetysObjectIterable<? extends Page>
getChildrenPages()
Retrieves child pages.ModelLessDataHolder
getDataHolder()
Returns theDataHolder
of thisAmetysObject
.int
getDepth()
Get the page depthString
getId()
Retrieves the unique identifier of this AmetysObject.
It must be unique in the whole repository and must never be null.
It must conform to the URI syntax:
<protocol>://<protocol-specific-part>
String
getLongTitle()
Retrieves the long title.String
getName()
Retrieves the name of the current object.Page
getParent()
Returns the parent object in the Ametys hierarchy.String
getParentPath()
Returns the path of the parent object in the Ametys hierarchy.(package private) Program
getParentProgram()
String
getPathInSitemap()
Computes the path relative to the current sitemap.AbstractProgram
getProgram()
Returns the associatedProgram
orSubProgram
.Site
getSite()
Returns this object's site.Sitemap
getSitemap()
Retrieves the sitemap containing the current sitemap.String
getSitemapName()
Returns this page's sitemap nameString
getSiteName()
Returns this object's site name.String
getTemplate()
Retrieves the template name.ModelAwareDataHolder
getTemplateParametersHolder()
Get the view parametersString
getTitle()
Retrieves the title.Zone
getZone(String name)
Retrieves a given zone.AmetysObjectIterable<? extends Zone>
getZones()
Retrieves the zones.boolean
hasChild(String name)
Tests if this Object has at least one child with the given name.-
Methods inherited from class org.ametys.plugins.odfweb.repository.AbstractOdfPage
getChildPageAt, getChildren, getChildrenPages, getPath, getReferers, getRootAttachments, getTags, getType, getURL, getURLType, hasZone, isVisible
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ametys.plugins.repository.AmetysObject
equals, hashCode
-
Methods inherited from interface org.ametys.plugins.repository.data.ametysobject.DataAwareAmetysObject
copyTo, dataToSAX, getDataNames, getRepositoryData
-
Methods inherited from interface org.ametys.plugins.repository.data.holder.DataHolder
dataToSAX
-
Methods inherited from interface org.ametys.plugins.repository.data.ametysobject.ModelLessDataAwareAmetysObject
dataToSAX, getComposite, getType, getValue, getValue, getValueOfType, getValueOfType, hasValue, isMultiple
-
Methods inherited from interface org.ametys.plugins.repository.data.holder.ModelLessDataHolder
dataToSAX
-
Methods inherited from interface org.ametys.plugins.repository.TraversableAmetysObject
getChildAt, getChildPosition
-
-
-
-
Field Detail
-
_program
private AbstractProgram _program
-
_parentPage
private Page _parentPage
-
_factory
private ProgramPageFactory _factory
-
-
Constructor Detail
-
ProgramPage
public ProgramPage(ProgramPageFactory factory, Page root, Program program, Page parentPage)
Constructor for program page holding aProgram
.- Parameters:
factory
- The factoryroot
- the ODF root page.program
- the program.parentPage
- the parentPage
or null if not yet computed.
-
ProgramPage
public ProgramPage(ProgramPageFactory factory, Page root, AbstractProgram program, String path, Program parent, Page parentPage)
Constructor for program page holding aProgram
orSubProgram
- Parameters:
factory
- The factoryroot
- the ODF root page.program
- the program or subprogram.path
- The path from the virtual second level page. Can be null if abstract program is aProgram
parent
- the parent program in case of a subprogram, null otherwiseparentPage
- the parentPage
or null if not yet computed.
-
-
Method Detail
-
getProgram
public AbstractProgram getProgram()
Returns the associatedProgram
orSubProgram
.- Returns:
- the associated
Program
orSubProgram
.
-
getDepth
public int getDepth() throws AmetysRepositoryException
Description copied from interface:Page
Get the page depth- Returns:
- the page depth
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getTemplate
public String getTemplate() throws AmetysRepositoryException
Description copied from interface:Page
Retrieves the template name.- Returns:
- the template name or
null
if none has been set. - Throws:
AmetysRepositoryException
- if an error occurs.
-
getTitle
public String getTitle() throws AmetysRepositoryException
Description copied from interface:Page
Retrieves the title.- Returns:
- the title.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getLongTitle
public String getLongTitle() throws AmetysRepositoryException
Description copied from interface:Page
Retrieves the long title.- Returns:
- the title.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getZone
public Zone getZone(String name) throws UnknownZoneException, AmetysRepositoryException
Description copied from interface:Page
Retrieves a given zone.- Parameters:
name
- the name of the zone.- Returns:
- the given zone.
- Throws:
UnknownZoneException
- if there is no zone for the given name.AmetysRepositoryException
- if an error occurs.
-
getZones
public AmetysObjectIterable<? extends Zone> getZones() throws AmetysRepositoryException
Description copied from interface:Page
Retrieves the zones.- Returns:
- the zones.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getChildrenPages
public AmetysObjectIterable<? extends Page> getChildrenPages() throws AmetysRepositoryException
Description copied from interface:PagesContainer
Retrieves child pages.- Returns:
- the child pages.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getPathInSitemap
public String getPathInSitemap() throws AmetysRepositoryException
Description copied from interface:PagesContainer
Computes the path relative to the current sitemap.- Returns:
- the path relative to the current sitemap.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getParentProgram
Program getParentProgram()
-
_computeLevelsPath
String _computeLevelsPath()
Compute the path from the root odf page, representing the first and second level pages.- Returns:
- the path
-
getSite
public Site getSite() throws AmetysRepositoryException
Description copied from interface:SiteAwareAmetysObject
Returns this object's site.- Returns:
- this object's site
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getSiteName
public String getSiteName() throws AmetysRepositoryException
Description copied from interface:SiteAwareAmetysObject
Returns this object's site name.- Returns:
- this object's site name.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getSitemap
public Sitemap getSitemap() throws AmetysRepositoryException
Description copied from interface:PagesContainer
Retrieves the sitemap containing the current sitemap.- Returns:
- the sitemap containing the current sitemap.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getSitemapName
public String getSitemapName() throws AmetysRepositoryException
Description copied from interface:PagesContainer
Returns this page's sitemap name- Returns:
- this page's sitemap name
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getChild
public <A extends AmetysObject> A getChild(String path) throws AmetysRepositoryException, UnknownAmetysObjectException
Description copied from interface:TraversableAmetysObject
Retrieves a given child from its relative path. The path cannot benull
, empty nor begin with a'/'
.- Type Parameters:
A
- the actual type ofAmetysObject
.- Parameters:
path
- the path of the child which can contains a position with.[n]
if same name sibling is allowed.- Returns:
- the child found.
- Throws:
AmetysRepositoryException
- if an error occurs.UnknownAmetysObjectException
- if the object does not exist.
-
_getChildPage
private Optional<Page> _getChildPage(TraversableProgramPart parent, String name)
-
_findChild
private Optional<ProgramItem> _findChild(TraversableProgramPart parent, String name)
-
_filterByName
private boolean _filterByName(ProgramItem programItem, String name)
-
_toChildPage
private Page _toChildPage(ProgramItem child)
-
_toChildProgramPage
private ProgramPage _toChildProgramPage(SubProgram child)
-
_toChildCoursePage
private CoursePage _toChildCoursePage(Course course)
-
hasChild
public boolean hasChild(String name) throws AmetysRepositoryException
Description copied from interface:TraversableAmetysObject
Tests if this Object has at least one child with the given name.- Parameters:
name
- the name to test. Cannot benull
nor empty nor begin with a'/'
and it cannot contain'/'
.- Returns:
true
if the named child exists,false
otherwise.- Throws:
AmetysRepositoryException
- if an error occurs.
-
getId
public String getId() throws AmetysRepositoryException
Description copied from interface:AmetysObject
Retrieves the unique identifier of this AmetysObject.
It must be unique in the whole repository and must never be null.
It must conform to the URI syntax:
<protocol>://<protocol-specific-part>
- Returns:
- the unique identifier of this AmetysObject
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getName
public String getName() throws AmetysRepositoryException
Description copied from interface:AmetysObject
Retrieves the name of the current object.- Returns:
- the name.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getParent
public Page getParent() throws AmetysRepositoryException
Description copied from interface:AmetysObject
Returns the parent object in the Ametys hierarchy.- Returns:
- the parent object or
null
if current object is the root. - Throws:
AmetysRepositoryException
- if an error occurs.
-
getParentPath
public String getParentPath() throws AmetysRepositoryException
Description copied from interface:AmetysObject
Returns the path of the parent object in the Ametys hierarchy.- Returns:
- the path of the parent object.
- Throws:
AmetysRepositoryException
- if an error occurs.
-
getDataHolder
public ModelLessDataHolder getDataHolder()
Description copied from interface:DataAwareAmetysObject
Returns theDataHolder
of thisAmetysObject
.- Returns:
- the
DataHolder
of thisAmetysObject
-
_traverseChildren
private Stream<ProgramItem> _traverseChildren(TraversableProgramPart parent)
-
getTemplateParametersHolder
public ModelAwareDataHolder getTemplateParametersHolder() throws AmetysRepositoryException
Description copied from interface:Page
Get the view parameters- Returns:
- the view parameters
- Throws:
AmetysRepositoryException
- if an error occurs.
-
-