|
What this is
Other links
The source code
// $Id: ResolvedCritic.java,v 1.10 2004/09/18 17:13:24 mvw Exp $
// Copyright (c) 2002-2004 The Regents of the University of California. All
// Rights Reserved. Permission to use, copy, modify, and distribute this
// software and its documentation without fee, and without a written
// agreement is hereby granted, provided that the above copyright notice
// and this paragraph appear in all copies. This software program and
// documentation are copyrighted by The Regents of the University of
// California. The software program and documentation are supplied "AS
// IS", without any accompanying services from The Regents. The Regents
// does not warrant that the operation of the program will be
// uninterrupted or error-free. The end-user understands that the program
// was developed for research purposes and is advised not to rely
// exclusively on the program for any reason. IN NO EVENT SHALL THE
// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
package org.argouml.cognitive;
import java.util.Enumeration;
import java.util.Vector;
import org.tigris.gef.util.VectorSet;
import org.argouml.cognitive.critics.Critic;
import org.apache.log4j.Logger;
// Needs-more-work: Maybe the exception strings should be internationalized
/**
* This class is responsible for identifying one critic that has been resolved
* by the user in one specific context.
*
* @author Michael Stockman
*/
public class ResolvedCritic
{
/** The logger */
private static final Logger LOG = Logger.getLogger(ResolvedCritic.class);
/** The name of the critic. */
private String critic;
/** The IDs of the objects that define the context of the critic. */
private Vector offenders;
/**
* Creates a new ResolvedCritic using the name of the Critic and the
* Vector of objects that triggered the Critic given as parameters.
*
* @param cr The name of the Critic that has been resolved
* @param offs The Vector of related objects.
*/
public ResolvedCritic(String cr, Vector offs)
{
this.critic = cr;
if (offs != null && offs.size() > 0)
this.offenders = new Vector(offs);
else
this.offenders = null;
}
/**
* Same as {@link #ResolvedCritic(Critic,VectorSet,boolean)
* ResolvedCritic(c, offs, true)}.
*
* @param c The Critic that has been resolved.
* @param offs The set of objects that triggered the Critic.
* @throws UnresolvableException If some of the objects does
* not have a ItemUID and does not accept a new
* one.
*/
public ResolvedCritic(Critic c, VectorSet offs) throws UnresolvableException
{
this(c, offs, true);
}
/**
* Creates a new ResolvedCritic from the given information.
*
* @param c The Critic that has been resolved.
* @param offs The set of objects that triggered the Critic.
* @param canCreate If it should try to assign new
* ItemUIDs to objects that doesn't have.
* @throws UnresolvableException If some of the objects does
* not have a ItemUID and does not accept a new
* one.
*/
public ResolvedCritic(Critic c, VectorSet offs, boolean canCreate)
throws UnresolvableException
{
if (c == null)
throw new NullPointerException();
//LOG.debug("Adding resolution for: " + c.getClass() + " " + canCreate);
try
{
if (offs != null && offs.size() > 0)
{
offenders = new Vector(offs.size());
importOffenders(offs, canCreate);
}
else
offenders = null;
}
catch (UnresolvableException ure)
{
try
{
getCriticString(c);
}
catch (UnresolvableException ure2)
{
throw new UnresolvableException(ure2.getMessage() + "\n"
+ ure.getMessage());
}
throw ure;
}
critic = getCriticString(c);
}
/**
* equals returns true if and only if obj also is a ResolvedCritic,
* has the same critic name, and has all related objects that this
* object has. Note that it is not required that this object has all
* related objects that that object has.
*
*
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.