ucot.input
Class UseCaseCollection

java.lang.Object
  extended by java.util.Observable
      extended by ucot.input.UseCaseCollection

public class UseCaseCollection
extends java.util.Observable

Collection of usecases. Handles finds and merges for them.

Author:
vevijopi

Field Summary
protected static java.lang.String CANNOT_LOAD_USE_CASES_ERROR
           
private  java.util.Vector<UseCase> useCases
           
 
Constructor Summary
UseCaseCollection()
           
 
Method Summary
 boolean addUseCase(UseCase usecase)
          Add usecase to collection and notify observers
 boolean addUseCase(UseCase usecase, boolean notify)
          Add usecase to collection and notify observers
 void clear()
          Clears loaded usecases.
 boolean exists(UseCase usecase)
          Checks if given UseCase exists in this collection
 UseCase find(java.lang.String id)
          Finds usecase that has the given id
 java.util.List<java.net.URL> getURLs()
          Returns list of source URLs
 UseCase getUseCase(int index)
          Returns UseCase from index
 int getUseCaseCount()
          Returns the count of use cases inside this collection.
 java.util.List<UseCase> getUseCasesFromURL(java.net.URL url)
          Returns list of usecases from source described in url.
 void markAllUnanalyzed()
          Marks all usecases within this collection as unanalyzed
private  void markAllUnanalyzed(UseCase usecase)
          Marks given usecase and it's sub usecases as unanalyzed
 void merge(UseCaseCollection collection)
          Merges given UseCaseCollection to this
 void remove(int index)
          Removes usecase with given index
 void removeAllSubUseCase()
          Removes all usecases that have been marked as subusecase
 void removeFromUrl(java.net.URL url)
          Removes all usecases that are loaded from given url
 void resolveSubUseCases(boolean markAsSubUseCases)
          Resolves step and sub-usecase relations, removes sub-usecases from usecasecollection and stores their reference to the corresponding usecase step
 void resolveSubUseCases(UseCase usecase, boolean markAsSubUseCases)
          Resolves given usecases step's sub-usecases and marks them as sub-usecases if necessary
 java.lang.String toString()
          Stores all usecases within this collection to a string and returns it
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CANNOT_LOAD_USE_CASES_ERROR

protected static java.lang.String CANNOT_LOAD_USE_CASES_ERROR

useCases

private java.util.Vector<UseCase> useCases
Constructor Detail

UseCaseCollection

public UseCaseCollection()
Method Detail

merge

public void merge(UseCaseCollection collection)
           throws CannotLoadUseCasesException
Merges given UseCaseCollection to this

Parameters:
collection - UseCaseCollection to merge
Throws:
CannotLoadUseCasesException

exists

public boolean exists(UseCase usecase)
Checks if given UseCase exists in this collection

Parameters:
usecase - UseCase to test
Returns:
true if UseCase exists in this collection

getUseCaseCount

public int getUseCaseCount()
Returns the count of use cases inside this collection.

Returns:
The count of use cases.

addUseCase

public boolean addUseCase(UseCase usecase)
Add usecase to collection and notify observers

Parameters:
usecase - UseCase to add
Returns:
true if usecase was added

addUseCase

public boolean addUseCase(UseCase usecase,
                          boolean notify)
Add usecase to collection and notify observers

Parameters:
usecase - UseCase to add
notify - should we notifyobservers and set usecase as changed
Returns:
true if usecase was added

find

public UseCase find(java.lang.String id)
Finds usecase that has the given id

Parameters:
id - id to find
Returns:
usecase with given id, -1 if none found

getUseCase

public UseCase getUseCase(int index)
Returns UseCase from index

Parameters:
index -
Returns:
UseCase

removeFromUrl

public void removeFromUrl(java.net.URL url)
Removes all usecases that are loaded from given url

Parameters:
url - usecases that are loaded from this url are removed

getURLs

public java.util.List<java.net.URL> getURLs()
Returns list of source URLs

Returns:
list of source URLs

getUseCasesFromURL

public java.util.List<UseCase> getUseCasesFromURL(java.net.URL url)
Returns list of usecases from source described in url.

Parameters:
url -
Returns:
list of usecases from source described in url

clear

public void clear()
Clears loaded usecases.


remove

public void remove(int index)
Removes usecase with given index

Parameters:
index - index of the usecase to remove

removeAllSubUseCase

public void removeAllSubUseCase()
Removes all usecases that have been marked as subusecase


markAllUnanalyzed

public void markAllUnanalyzed()
Marks all usecases within this collection as unanalyzed


markAllUnanalyzed

private void markAllUnanalyzed(UseCase usecase)
Marks given usecase and it's sub usecases as unanalyzed

Parameters:
usecase - usecase to be marked

toString

public java.lang.String toString()
Stores all usecases within this collection to a string and returns it

Overrides:
toString in class java.lang.Object

resolveSubUseCases

public void resolveSubUseCases(boolean markAsSubUseCases)
Resolves step and sub-usecase relations, removes sub-usecases from usecasecollection and stores their reference to the corresponding usecase step

Parameters:
markAsSubUseCases -

resolveSubUseCases

public void resolveSubUseCases(UseCase usecase,
                               boolean markAsSubUseCases)
Resolves given usecases step's sub-usecases and marks them as sub-usecases if necessary

Parameters:
markAsSubUseCases -