001: /***************************************************************
002: * This file is part of the [fleXive](R) project.
003: *
004: * Copyright (c) 1999-2008
005: * UCS - unique computing solutions gmbh (http://www.ucs.at)
006: * All rights reserved
007: *
008: * The [fleXive](R) project is free software; you can redistribute
009: * it and/or modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation;
011: * either version 2 of the License, or (at your option) any
012: * later version.
013: *
014: * The GNU General Public License can be found at
015: * http://www.gnu.org/copyleft/gpl.html.
016: * A copy is found in the textfile GPL.txt and important notices to the
017: * license from the author are found in LICENSE.txt distributed with
018: * these libraries.
019: *
020: * This library is distributed in the hope that it will be useful,
021: * but WITHOUT ANY WARRANTY; without even the implied warranty of
022: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
023: * GNU General Public License for more details.
024: *
025: * For further information about UCS - unique computing solutions gmbh,
026: * please see the company website: http://www.ucs.at
027: *
028: * For further information about [fleXive](R), please see the
029: * project website: http://www.flexive.org
030: *
031: *
032: * This copyright notice MUST APPEAR in all copies of the file!
033: ***************************************************************/package com.flexive.shared.interfaces;
034:
035: import com.flexive.shared.exceptions.*;
036:
037: import javax.ejb.Remote;
038:
039: /**
040: * Mandator Interface
041: *
042: * @author Markus Plesser (markus.plesser@flexive.com), UCS - unique computing solutions gmbh (http://www.ucs.at)
043: */
044: @Remote
045: public interface MandatorEngine {
046:
047: /**
048: * Create a new mandator
049: *
050: * @param name name to assign
051: * @param active active flag
052: * @return id of the new mandator
053: * @throws FxApplicationException TODO
054: * @throws FxCreateException on errors
055: * @throws FxInvalidParameterException if the name is invalid
056: * @throws FxEntryExistsException if a mandator with this name already exists
057: * @throws FxNoAccessException if the user is not in the role MANDATOR_MANAGEMENT
058: */
059: int create(String name, boolean active)
060: throws FxApplicationException;
061:
062: /**
063: * Assign a content instance with metadata for this mandator
064: *
065: * @param mandatorId id of the mandator
066: * @param contentId id of the content containing the metadata
067: * @throws FxApplicationException TODO
068: * @throws FxNotFoundException if either the mandator or the metadata content dont exist
069: * @throws FxNoAccessException if the user is not in the role MANDATOR_MANAGEMENT
070: * @throws FxUpdateException on update errors
071: */
072: void assignMetaData(int mandatorId, long contentId)
073: throws FxApplicationException;
074:
075: /**
076: * Remove metadata assigned to the given mandator
077: *
078: * @param mandatorId id of the mandator
079: * @throws FxApplicationException TODO
080: * @throws FxNotFoundException if the mandator does not exist
081: * @throws FxNoAccessException if the user is not in the role MANDATOR_MANAGEMENT
082: * @throws FxUpdateException on update errors
083: */
084: void removeMetaData(int mandatorId) throws FxApplicationException;
085:
086: /**
087: * Activate a mandator
088: *
089: * @param mandatorId id of the mandator
090: * @throws FxApplicationException TODO
091: * @throws FxNotFoundException if the mandator does not exist
092: * @throws FxNoAccessException if the user is not in the role MANDATOR_MANAGEMENT
093: * @throws FxUpdateException on update errors
094: */
095: void activate(long mandatorId) throws FxApplicationException;
096:
097: /**
098: * Deactivate a mandator
099: *
100: * @param mandatorId id of the mandator
101: * @throws FxApplicationException TODO
102: * @throws FxNotFoundException if the mandator does not exist
103: * @throws FxNoAccessException if the user is not in the role MANDATOR_MANAGEMENT
104: * @throws FxUpdateException on update errors
105: */
106: void deactivate(long mandatorId) throws FxApplicationException;
107:
108: /**
109: * Remove a mandator.
110: * If the mandator is in use or is referenced this method will fail!
111: *
112: * @param mandatorId id of the mandator
113: * @throws FxApplicationException TODO
114: * @throws FxEntryInUseException if the mandator is referenced
115: * @throws FxNotFoundException if the mandator does not exist
116: * @throws FxNoAccessException if the user is not in the role MANDATOR_MANAGEMENT
117: * @throws FxRemoveException on remove errors
118: */
119: void remove(long mandatorId) throws FxApplicationException;
120:
121: /**
122: * Updates the name of the specified mandator.
123: *
124: * @param mandatorId the mandator to change the name for
125: * @param name the new name
126: * @throws FxApplicationException TODO
127: */
128: void changeName(long mandatorId, String name)
129: throws FxApplicationException;
130:
131: }
|