/* (non-Javadoc)
   * @see org.tellervo.desktop.sample.CorinaMetadata#getNumberOfSapwoodRings()
   */
  @Override
  public final Integer getNumberOfSapwoodRings() {
    TridasWoodCompleteness woodCompleteness = getWoodCompleteness();

    if (!have(woodCompleteness)) return 0;

    TridasSapwood sapwood = woodCompleteness.getSapwood();

    if (!have(sapwood)) return 0;

    return sapwood.getNrOfSapwoodRings();
  }
  /* (non-Javadoc)
   * @see org.tellervo.desktop.sample.CorinaMetadata#hasSapwood()
   */
  @Override
  public final boolean hasSapwood() {
    TridasWoodCompleteness woodCompleteness = getWoodCompleteness();

    if (!have(woodCompleteness)) return false;

    TridasSapwood sapwood = woodCompleteness.getSapwood();

    if (!have(sapwood)) return false;

    switch (sapwood.getPresence()) {
      case COMPLETE:
      case INCOMPLETE:
        // only say yes if we have a set number of sapwood rings, too!
        // TODO: THIS IS NOT SUPPOSED TO BE THIS WAY. FIX ME!
        // FIXME: IN THE DATABASE!
        return sapwood.isSetNrOfSapwoodRings();

      default:
        return false;
    }
  }