    View Javadoc
    1   /*
    2    * Copyright (c) 2003
    3    * Information Desire GmbH
    4    * All rights reserved.
    5    */
    6   package com.infodesire.infobit.external.impl;
    7
    8   import com.infodesire.infobit.InfobitException;
    9   import com.infodesire.infobit.InfobitSecurityException;
    10
    11  import com.infodesire.infobit.data.Infobit;
    12
    13  import org.apache.commons.logging.Log;
    14  import org.apache.commons.logging.LogFactory;
    15
    16  import java.util.Collection;
    17  import java.util.HashSet;
    18
    19  /***
    20   * This class represents an infobit in the dependency graph of content and
    21   * nodes.
    22   *
    23   * @author    peter2
    24   * @created   1. September 2003
    25   * @version   $Revision: 1.1 $
    26   */
    27  class InfobitNode extends BufferNode {
    28
    29      private final static Log _log = LogFactory.getLog(InfobitNode.class);
    30
    31      /***
    32       * The resolved infobit represented by the present buffer node
    33       */
    34      private Infobit _infobit;
    35
    36      /***
    37       * The name identifying the represented infobit
    38       */
    39      private String  _name;
    40
    41      /***
    42       * The infobit reference has not (yet) been resolved.
    43       */
    44      private boolean _dangling;
    45
    46      /***
    47       * The referred infobit has already been detected in the system.
    48       */
    49      private boolean _predefined;
    50
    51
    52      /***
    53       * Gets the name to which the infobit is registered.
    54       *
    55       * @return   The Name value
    56       */
    57      String getName() {
    58          return _name;
    59      }
    60
    61
    62      /***
    63       * Gets the Dependencies attribute of the InfobitNode object
    64       *
    65       * @return   The Dependencies value
    66       */
    67      Collection getDependencies() {
    68          return new HashSet();
    69      }
    70
    71
    72      /***
    73       * The infobit reference has not yet been resolved to a predifined or
    74       * imported infobit.
    75       *
    76       * @return   The Dangling value
    77       */
    78      boolean isDangling() {
    79          return _dangling;
    80      }
    81
    82
    83      /***
    84       * The infobit node is per-existent in the system (as opposed to imported).
    85       * Defined after {@link #persistBuffer}.
    86       *
    87       * @return   The Predefined value
    88       */
    89      boolean isPredefined() {
    90          return _predefined;
    91      }
    92
    93
    94      /***
    95       * Marks the node as {@link #isPredefined predefined}.
    96       *
    97       * @param predefined  The new Predefined value
    98       */
    99      void setPredefined(boolean predefined) {
    100         _predefined = predefined;
    101     }
    102
    103
    104     /***
    105      * Defines the name to which the infobit is registered. For use on
    106      * initialization only.
    107      *
    108      * @param name  The new Name value
    109      */
    110     void setName(String name) {
    111         _name = name;
    112     }
    113
    114
    115     /***
    116      * Marks the infobit as {@link _isDangling dangling}.
    117      *
    118      * @param dangling  The infobit is dangling
    119      */
    120     void setDangling(boolean dangling) {
    121         _dangling = dangling;
    122     }
    123
    124
    125     /***
    126      * This node cannot have dependencies.
    127      *
    128      * @param dependency  Description of Parameter
    129      * @param value       Description of Parameter
    130      */
    131     void resolveDependency(BufferNode dependency, Object value) {
    132         _log.error("unknown dependency ");
    133         throw new RuntimeException("unknown dependency");
    134     }
    135
    136
    137     /***
    138      * Creates the infobit unless it has already been created.
    139      *
    140      * @return                              The infobit represented by the node
    141      * @exception InfobitException          Description of Exception
    142      * @exception InfobitSecurityException  Description of Exception
    143      */
    144     Object persistBuffer() throws InfobitException, InfobitSecurityException {
    145
    146         _predefined = _manager.hasInfobit(_name);
    147
    148         if (_predefined) {
    149             _infobit = _manager.getInfobit(_name);
    150         }
    151         else {
    152             _infobit = _manager.createInfobit(_name, _acl);
    153         }
    154
    155         return _infobit;
    156     }
    157
    158 }

This page was automatically generated by Maven