All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cristalise.kernel.entity.TraceableEntity Maven / Gradle / Ivy

/**
 * This file is part of the CRISTAL-iSE kernel.
 * Copyright (c) 2001-2015 The CRISTAL Consortium. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation; either version 3 of the License, or (at
 * your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
 * License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 *
 * http://www.fsf.org/licensing/licenses/lgpl.html
 */
package org.cristalise.kernel.entity;


import org.cristalise.kernel.common.AccessRightsException;
import org.cristalise.kernel.common.InvalidCollectionModification;
import org.cristalise.kernel.common.InvalidDataException;
import org.cristalise.kernel.common.InvalidTransitionException;
import org.cristalise.kernel.common.ObjectAlreadyExistsException;
import org.cristalise.kernel.common.ObjectNotFoundException;
import org.cristalise.kernel.common.PersistencyException;
import org.cristalise.kernel.common.SystemKey;
import org.cristalise.kernel.lookup.ItemPath;
import org.cristalise.kernel.utils.Logger;


/**************************************************************************
*  TraceableEntity is the implementation of the CORBA Item, although it 
*  delegates all non-CORBA functions to ItemImplementation.
*  
*  Traditional Pinky/Brain ASCII art:
*  
* 
*                                ,.   '\'\    ,---.
*                            .  | \\  l\\l_ //    |
*        _              _       |  \\/ `/  `.|    |
*      /~\\   \        //~\     | Y |   |   ||  Y |
*      |  \\   \      //  |     |  \|   |   |\ /  |
*      [   ||        ||   ]     \   |  o|o  | >  /
*     ] Y  ||        ||  Y [     \___\_--_ /_/__/
*     |  \_|l,------.l|_/  |     /.-\(____) /--.\
*     |   >'          `<   |     `--(______)----'
*     \  (/~`--____--'~\)  /         u// u / \
*      `-_>-__________-<_-'          / \  / /|
*          /(_#(__)#_)\             ( .) / / ]
*          \___/__\___/              `.`' /   [
*           /__`--'__\                |`-'    |
*        /\(__,>-~~ __)               |       |_
*     /\//\\(  `--~~ )               _l       |-:.
*     '\/  <^\      /^>             |  `   (  <  \\
*          _\ >-__-< /_           ,-\  ,-~~->. \  `:._,/
*        (___\    /___)         (____/    (____)   `-'
*             Kovax            and, paradoxically, Kovax
* 
***************************************************************************/ public class TraceableEntity extends ItemPOA { private final org.omg.PortableServer.POA mPoa; private final ItemImplementation mItemImpl; public TraceableEntity( ItemPath key, org.omg.PortableServer.POA poa ) { Logger.msg(5,"TraceableEntity::constructor() - SystemKey:" + key ); mPoa = poa; mItemImpl = new ItemImplementation(key); } @Override public org.omg.PortableServer.POA _default_POA() { if(mPoa != null) return mPoa; else return super._default_POA(); } @Override public SystemKey getSystemKey() { return mItemImpl.getSystemKey(); } @Override public void initialise( SystemKey agentId, String propString, String initWfString, String initCollsString, String initViewpointString, String initOutcomeString ) throws AccessRightsException, InvalidDataException, PersistencyException { synchronized (this) { mItemImpl.initialise(agentId, propString, initWfString, initCollsString, initViewpointString, initOutcomeString); } } @Override public String requestAction( SystemKey agentId, String stepPath, int transitionID, String requestData, String attachmentType, byte[] attachment ) throws AccessRightsException, InvalidTransitionException, ObjectNotFoundException, InvalidDataException, PersistencyException, ObjectAlreadyExistsException, InvalidCollectionModification { synchronized (this) { return mItemImpl.requestAction(agentId, stepPath, transitionID, requestData, attachmentType, attachment); } } @Override public String delegatedAction( SystemKey agentId, SystemKey delegateAgentId, String stepPath, int transitionID, String requestData, String attachmentType, byte[] attachment ) throws AccessRightsException, InvalidTransitionException, ObjectNotFoundException, InvalidDataException, PersistencyException, ObjectAlreadyExistsException, InvalidCollectionModification { synchronized (this) { return mItemImpl.delegatedAction(agentId, delegateAgentId, stepPath, transitionID, requestData, attachmentType, attachment); } } @Override public String queryLifeCycle( SystemKey agentId, boolean filter ) throws AccessRightsException, ObjectNotFoundException, PersistencyException { synchronized (this) { return mItemImpl.queryLifeCycle(agentId, filter); } } @Override public String queryData(String path) throws AccessRightsException, ObjectNotFoundException, PersistencyException { synchronized (this) { return mItemImpl.queryData(path); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy