class RelationshipType {

  public static RelationshipType of(String id, String label) {
    switch (id) {
      case "is_a":
        return IS_A;
      case "http://purl.obolibrary.org/obo/BFO_0000050":
      case "part of":
      case "part_of":
        return PART_OF;
//      case "http://purl.obolibrary.org/obo/BFO_0000051":
//      case "has part":
//        return HAS_PART;
//      case "http://purl.obolibrary.org/obo/RO_0002211":
//      case "regulates":
//        return REGULATES;
//      case "http://purl.obolibrary.org/obo/RO_0002212":
//      case "negatively regulates":
//        return NEGATIVELY_REGULATES;
//      case "http://purl.obolibrary.org/obo/RO_0002213":
//      case "positively regulates":
//        return POSITIVELY_REGULATES;
//      case "http://purl.obolibrary.org/obo/BFO_0000066":
//      case "occurs in":
//        return OCCURS_IN;
//      case "http://purl.obolibrary.org/obo/RO_0002092":
//      case "happens during":
//        return HAPPENS_DURING;
//      case "http://purl.obolibrary.org/obo/RO_0002093":
//      case "ends during":
//        return ENDS_DURING;
      case "subPropertyOf":
        return SUBPROPERTY_OF;
//      case "inverseOf":
//        return INVERSE_OF;
      case "http://purl.obolibrary.org/obo/RO_0002573":
      case "has modifier":
        return HAS_MODIFIER;
//      case "http://purl.obolibrary.org/obo/RO_0004022":
//        return DISEASE_HAS_BASIS_IN_FEATURE;
//      case "http://purl.obolibrary.org/obo/mondo#disease_shares_features_of":
//        return DISEASE_SHARES_FEATURES_OF;
//      case "http://purl.obolibrary.org/obo/RO_0004029":
//        return DISEASE_HAS_FEATURE;
//      case "http://purl.obolibrary.org/obo/mondo#disease_has_major_feature":
//        return DISEASE_HAS_MAJOR_FEATURE;
//      case "http://purl.obolibrary.org/obo/RO_0004026":
//        return DISEASE_HAS_LOCATION;
//      case "http://purl.obolibrary.org/obo/mondo#disease_causes_feature":
//        return DISEASE_CAUSES_FEATURE;
//      case "http://purl.obolibrary.org/obo/mondo#part_of_progression_of_disease":
//        return PART_OF_PROGRESSION_OF_DISEASE;
//      case "http://purl.obolibrary.org/obo/RO_0004028":
//        return REALIZED_IN_RESPONSE_TO_STIMULUS;
      default:
        return cache.computeIfAbsent(id, key -> new RelationshipType(id, label));
    }
  }

  private  RelationshipType(String id, String name);

}