public void and(Capabilities c){
  if (doNotCheckCapabilities()) {
    return;
  }
  for (  Capability cap : Capability.values()) {
    if (handles(cap) && c.handles(cap)) {
      m_Capabilities.add(cap);
    }
 else {
      m_Capabilities.remove(cap);
    }
    if (hasDependency(cap) && c.hasDependency(cap)) {
      m_Dependencies.add(cap);
    }
 else {
      m_Dependencies.remove(cap);
    }
  }
  if (c.getMinimumNumberInstances() > getMinimumNumberInstances()) {
    setMinimumNumberInstances(c.getMinimumNumberInstances());
  }
}

public void and ( Capabilities c ) { if ( doNotCheckCapabilities ( ) ) { return ; } for ( Capability cap : Capability . values ( ) ) { if ( handles ( cap ) && c . handles ( cap ) ) { m_Capabilities . add ( cap ) ; } else { m_Capabilities . remove ( cap ) ; } if ( hasDependency ( cap ) && c . hasDependency ( cap ) ) { m_Dependencies . add ( cap ) ; } else { m_Dependencies . remove ( cap ) ; } } if ( c . getMinimumNumberInstances ( ) > getMinimumNumberInstances ( ) ) { setMinimumNumberInstances ( c . getMinimumNumberInstances ( ) ) ; } }
performs an and conjunction with the capabilities of the given capabilities object and updates itself
