content: /*************************************************************************
  *                                                                        *
  *  This file is part of the 20n/act project.                             *
  *  20n/act enables DNA prediction for synthetic biology/bioengineering.  *
  *  Copyright (C) 2017 20n Labs, Inc.                                     *
  *                                                                        *
  *  Please direct all queries to act@20n.com.                             *
  *                                                                        *
  *  This program is free software: you can redistribute it and/or modify  *
  *  it under the terms of the GNU General Public License as published by  *
  *  the Free Software Foundation, either version 3 of the License, or     *
  *  (at your option) any later version.                                   *
  *                                                                        *
  *  This program is distributed in the hope that it will be useful,       *
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of        *
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
  *  GNU General Public License for more details.                          *
  *                                                                        *
  *  You should have received a copy of the GNU General Public License     *
  *  along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  *                                                                        *
  *************************************************************************/
  
  package com.act.reachables;
  
  import java.util.HashSet;
  import java.util.List;
  import java.util.Set;
  
  public class EnvCond {
    private Set<Long> c_ids;
    public EnvCond(List<Long> s) {
      this.c_ids = new HashSet<Long>();
      this.c_ids.addAll(s);
    }
    public Set<Long> speculatedChems() { return this.c_ids; }
    @Override
    public int hashCode() {
      long h = 42;
      for (Long l : this.c_ids) h = h ^ l;
      return (int)h;
    }
    @Override
    public boolean equals(Object o) {
      if (!(o instanceof EnvCond)) return false;
      EnvCond s = (EnvCond)o;
      return this.c_ids.containsAll(s.c_ids) && s.c_ids.containsAll(this.c_ids);
    }
    @Override
    public String toString() {
      return this.c_ids.toString();
    }
    public String toReadableString(int sz) {
      return toString();
    }
  }
  