//----------------------------------------------------------------------------//
// //
// B a s i c A d m i n i s t r a t i o n //
// //
//----------------------------------------------------------------------------//
// <editor-fold defaultstate="collapsed" desc="hdr"> //
// Copyright © Hervé Bitteur and others 2000-2013. All rights reserved. //
// This software is released under the GNU General Public License. //
// Goto http://kenai.com/projects/audiveris to report bugs or suggestions. //
//----------------------------------------------------------------------------//
// </editor-fold>
package omr.glyph.facets;
import omr.glyph.Nest;
/**
* Class {@code BasicAdministration} is a basic implementation of glyph
* administration facet
*
* @author Hervé Bitteur
*/
class BasicAdministration
extends BasicFacet
implements GlyphAdministration
{
//~ Instance fields --------------------------------------------------------
/** The containing glyph nest. */
protected Nest nest;
/** Glyph instance identifier. (Unique in the containing nest) */
protected int id;
/** Flag to remember processing has been done. */
private boolean processed = false;
/** VIP flag. */
protected boolean vip;
/** Related id string (prebuilt once for all) */
protected String idString;
//~ Constructors -----------------------------------------------------------
//---------------------//
// BasicAdministration //
//---------------------//
/**
* Create a new BasicAdministration object
*
* @param glyph our glyph
*/
public BasicAdministration (Glyph glyph)
{
super(glyph);
}
//~ Methods ----------------------------------------------------------------
//--------//
// dumpOf //
//--------//
@Override
public String dumpOf ()
{
StringBuilder sb = new StringBuilder();
sb.append(String.format("Glyph: %s@%s%n",
glyph.getClass().getName(),
Integer.toHexString(glyph.hashCode())));
sb.append(String.format(" id=%d%n", getId()));
sb.append(String.format(" nest=%s%n", getNest()));
return sb.toString();
}
//-------//
// getId //
//-------//
@Override
public int getId ()
{
return id;
}
//---------//
// getNest //
//---------//
@Override
public Nest getNest ()
{
return nest;
}
//----------//
// idString //
//----------//
@Override
public final String idString ()
{
return idString;
}
//-------------//
// isProcessed //
//-------------//
@Override
public boolean isProcessed ()
{
return processed;
}
//-------------//
// isTransient //
//-------------//
@Override
public boolean isTransient ()
{
return nest == null;
}
//-------//
// isVip //
//-------//
@Override
public boolean isVip ()
{
return vip;
}
//-----------//
// isVirtual //
//-----------//
@Override
public boolean isVirtual ()
{
return false;
}
//-------//
// setId //
//-------//
@Override
public void setId (int id)
{
this.id = id;
idString = "glyph#" + id;
}
//---------//
// setNest //
//---------//
@Override
public void setNest (Nest nest)
{
this.nest = nest;
}
//--------------//
// setProcessed //
//--------------//
@Override
public void setProcessed (boolean processed)
{
this.processed = processed;
}
//--------//
// setVip //
//--------//
@Override
public void setVip ()
{
vip = true;
}
}