| ControllerPersistence |

    1   /*
    2    *  Copyright (c) 1998-2001, The University of Sheffield.
    3    *
    4    *  This file is part of GATE (see http://gate.ac.uk/), and is free
    5    *  software, licenced under the GNU Library General Public License,
    6    *  Version 2, June 1991 (in the distribution as file licence.html,
    7    *  and also available at http://gate.ac.uk/gate/licence.html).
    8    *
    9    *  Valentin Tablan 26/10/2001
    10   *
    11   *  $Id: ControllerPersistence.java,v 1.2 2001/10/29 17:11:26 valyt Exp $
    12   *
    13   */
    14  package gate.util.persistence;
    15
    16  import gate.*;
    17  import gate.creole.*;
    18  import gate.util.*;
    19  import gate.persist.PersistenceException;
    20
    21  import java.util.*;
    22
    23  public class ControllerPersistence extends ResourcePersistence {
    24    /**
    25     * Populates this Persistence with the data that needs to be stored from the
    26     * original source object.
    27     */
    28    public void extractDataFromSource(Object source)throws PersistenceException{
    29      if(! (source instanceof Controller)){
    30        throw new UnsupportedOperationException(
    31                  getClass().getName() + " can only be used for " +
    32                  Controller.class.getName() +
    33                  " objects!\n" + source.getClass().getName() +
    34                  " is not a " + Controller.class.getName());
    35      }
    36      Controller controller = (Controller)source;
    37
    38      super.extractDataFromSource(source);
    39      prList = new ArrayList(controller.getPRs().size());
    40      Iterator prIter = controller.getPRs().iterator();
    41
    42      while(prIter.hasNext()){
    43        ((List)prList).add(prIter.next());
    44      }
    45      prList = PersistenceManager.getPersistentRepresentation(prList);
    46    }
    47
    48    /**
    49     * Creates a new object from the data contained. This new object is supposed
    50     * to be a copy for the original object used as source for data extraction.
    51     */
    52    public Object createObject()throws PersistenceException,
    53                                       ResourceInstantiationException{
    54
    55      Controller controller = (Controller)super.createObject();
    56
    57      if(controller.getPRs().isEmpty()){
    58        prList = PersistenceManager.getTransientRepresentation(prList);
    59        controller.setPRs((Collection)prList);
    60      }
    61
    62      return controller;
    63    }
    64
    65    protected Object prList;
    66    static final long serialVersionUID = 727852357092819439L;
    67  }

| ControllerPersistence |