001: /*
002: * $Header: /export/home/cvsroot/MyPersonalizerRepository/MyPersonalizer/Subsystems/Kernel/Sources/es/udc/mypersonalizer/kernel/model/editors/WorkspaceLayoutEditor.java,v 1.1.1.1 2004/03/25 12:08:37 fbellas Exp $
003: * $Revision: 1.1.1.1 $
004: * $Date: 2004/03/25 12:08:37 $
005: *
006: * =============================================================================
007: *
008: * Copyright (c) 2003, The MyPersonalizer Development Group
009: * (http://www.tic.udc.es/~fbellas/mypersonalizer/index.html) at
010: * University Of A Coruna
011: * All rights reserved.
012: *
013: * Redistribution and use in source and binary forms, with or without
014: * modification, are permitted provided that the following conditions are met:
015: *
016: * - Redistributions of source code must retain the above copyright notice,
017: * this list of conditions and the following disclaimer.
018: *
019: * - Redistributions in binary form must reproduce the above copyright notice,
020: * this list of conditions and the following disclaimer in the documentation
021: * and/or other materials provided with the distribution.
022: *
023: * - Neither the name of the University Of A Coruna nor the names of its
024: * contributors may be used to endorse or promote products derived from
025: * this software without specific prior written permission.
026: *
027: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
028: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
029: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
030: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
031: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
032: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
033: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
034: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
035: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
036: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
037: * POSSIBILITY OF SUCH DAMAGE.
038: *
039: */
040:
041: package es.udc.mypersonalizer.kernel.model.editors;
042:
043: import es.udc.mypersonalizer.kernel.model.properties.Property;
044: import es.udc.mypersonalizer.kernel.util.exceptions.InternalErrorException;
045: import java.util.*;
046:
047: /**
048: * Editor for accessing the information in a WorkspaceLayout property.
049: * This editor accesses the WorkspaceLayout property knowing the internals
050: * of its structure and hiding them to the object which might use it.
051: *
052: * @author Daniel Fernandez
053: * @since 1.0
054: */
055: public interface WorkspaceLayoutEditor {
056:
057: /**
058: * Sets the property on which the editor will work.
059: *
060: * @param property the property.
061: */
062: public void setProperty(Property property);
063:
064: /**
065: * Returns a Map representing the services which are present in this
066: * Workspace.
067: * This Map is structured as follows: It is indexed by <b>area</b>
068: * (Integer), being each of its values a <b>List</b> which contains objects
069: * of type {@link ServiceKeys}.
070: *
071: * This way, each area can provide with the List of all the services which
072: * are attached to it.
073: *
074: * @throws InternalErrorException if any fatal errors happen.
075: * @return the keys of the services indexed by it's area.
076: */
077: public Map getServiceKeys() throws InternalErrorException;
078:
079: /**
080: * Sets the services which are present in this Workspace.
081: * <br>
082: * The Map it receives as parameter is structured as follows: It is
083: * indexed by <b>area</b> (Integer), being each of its values a <b>List</b>
084: * which contains objects of type {@link ServiceKeys}.<br>
085: *
086: * This way, each area can provide with the List of all the services which
087: * are attached to it.
088: *
089: * @param keysByArea the Map containing the Lists of ServiceKeys objects.
090: * @throws InternalErrorException if any fatal errors happen.
091: */
092: public void setServiceKeys(Map keysByArea)
093: throws InternalErrorException;
094:
095: /**
096: * Returns the Workspace Type to which the workspace being edited
097: * belongs.
098: *
099: * @throws InternalErrorException if any fatal errors happen.
100: * @return a String with the workspace's type.
101: */
102: public String getWorkspaceType() throws InternalErrorException;
103:
104: /**
105: * Sets the workspace type to which the edited workspace belongs.
106: *
107: * @param workspaceType the new workspace type.
108: * @throws InternalErrorException if any fatal errors happen.
109: */
110: public void setWorkspaceType(String workspaceType)
111: throws InternalErrorException;
112:
113: /**
114: * Returns the Workspace name assigned to the workspace layout being edited.
115: *
116: * @throws InternalErrorException if any fatal errors happen.
117: * @return a String with the workspace's name.
118: */
119: public String getWorkspaceName() throws InternalErrorException;
120:
121: /**
122: * Sets the workspace name for this workspace layout.
123: *
124: * @param workspaceName the new workspace name.
125: * @throws InternalErrorException if any fatal errors happen.
126: */
127: public void setWorkspaceName(String workspaceName)
128: throws InternalErrorException;
129:
130: /**
131: * Returns the layout type for this workspace.
132: *
133: * @throws InternalErrorException if any fatal errors happen.
134: * @return a String with the workspace's layout type
135: */
136: public String getLayoutType() throws InternalErrorException;
137:
138: /**
139: * Sets the layout type for the edited workspace.
140: *
141: * @param layoutType the new layour type.
142: * @throws InternalErrorException if any fatal errors happen.
143: */
144: public void setLayoutType(String layoutType)
145: throws InternalErrorException;
146:
147: /**
148: * Returns the time stamp of this workspace's property. This time stamp
149: * avoids concurrency problems which may be caused by two or more
150: * simultaneous accesses to the property.
151: *
152: * @throws InternalErrorException if any fatal errors happen.
153: * @return a Long with the workspace's timestamp
154: */
155: public Long getTimeStamp() throws InternalErrorException;
156:
157: /**
158: * Updates the property's time stamp.
159: *
160: * @throws InternalErrorException if any fatal errors happen.
161: */
162: public void updateTimeStamp() throws InternalErrorException;
163:
164: /**
165: * This method will ask the EmptyPropertyFactory to create a fresh empty
166: * Property suitable for a Workspace Layout. This will be used
167: * to fill in new data.
168: *
169: * @throws InternalErrorException if any fatal errors happen.
170: * @return a Property with the adequate structure to handle the workspace
171: * layout.
172: */
173: public Property createEmptyProperty() throws InternalErrorException;
174: }
|