//----------------------------------------------------------------------------//
// //
// B a s i c T r a n s l 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.score.entity.PartNode;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
/**
* Class {@code BasicTranslation} is the basic implementation of the
* translation facet
*
* @author Hervé Bitteur
*/
class BasicTranslation
extends BasicFacet
implements GlyphTranslation
{
//~ Instance fields --------------------------------------------------------
/** Set of translation(s) of this glyph on the score side */
private Set<PartNode> translations = new HashSet<>();
//~ Constructors -----------------------------------------------------------
//------------------//
// BasicTranslation //
//------------------//
/**
* Create a new BasicTranslation object
*
* @param glyph our glyph
*/
public BasicTranslation (Glyph glyph)
{
super(glyph);
}
//~ Methods ----------------------------------------------------------------
//----------------//
// addTranslation //
//----------------//
@Override
public void addTranslation (PartNode entity)
{
translations.add(entity);
}
//-------------------//
// clearTranslations //
//-------------------//
@Override
public void clearTranslations ()
{
translations.clear();
}
//--------//
// dumpOf //
//--------//
@Override
public String dumpOf ()
{
StringBuilder sb = new StringBuilder();
if (!translations.isEmpty()) {
sb.append(String.format(" translations=%s%n", translations));
}
return sb.toString();
}
//-----------------//
// getTranslations //
//-----------------//
@Override
public Collection<PartNode> getTranslations ()
{
return translations;
}
//-----------------//
// invalidateCache //
//-----------------//
@Override
public void invalidateCache ()
{
clearTranslations();
}
//--------------//
// isTranslated //
//--------------//
@Override
public boolean isTranslated ()
{
return !translations.isEmpty();
}
//----------------//
// setTranslation //
//----------------//
@Override
public void setTranslation (PartNode entity)
{
translations.clear();
addTranslation(entity);
}
}