示例#1
0
  Set<SignalKey> getExpressedSignals(final boolean external) {
    // calculate the signal concentrations
    final HashSet<SignalKey> allSignals = new HashSet<SignalKey>();
    for (AbstractWaveletGene waveletGene : this.sequencedGenes) {
      // if the current gene doesnt express a signal then skip it.
      if (!(waveletGene instanceof SignalGene)) continue;
      // convert the gene's type
      final SignalGene gene = (SignalGene) waveletGene;

      // check if the gene's signal is internal or external. continue if
      // it doesnt match
      if (external) {
        // if its not an outward pointing external gene then just skip it
        if (!(gene instanceof ExternalSignalGene)) continue;
        else if (!((ExternalSignalGene) gene).isOutward()) continue;
      } else {
        // if its an outward pointing external than just skip it.
        if ((gene instanceof ExternalSignalGene) && (((ExternalSignalGene) gene).isOutward()))
          continue;
      }

      allSignals.add(gene.getOutputSignal());
    }

    return Collections.unmodifiableSet(allSignals);
  }