code: @Override
      public List<BelTerm> getSupportingTerms(KamNode kamNode)
              throws KamStoreServiceException {
          List<BelTerm> list = new ArrayList<BelTerm>();
  
          try {
              // Get the real Kam from the KamCache
              KamStoreObjectRef kamElementRef;
              try {
                  kamElementRef = Converter.decodeNode(kamNode);
              } catch (InvalidIdException e) {
                  logger.warn(e.getMessage());
                  throw new KamStoreServiceException("Error processing KAM node",
                          e);
              }
  
              final KamInfo kamInfo =
                      getKamInfo(kamElementRef, "Error processing KAM node");
              final org.openbel.framework.api.Kam objKam =
                      kamCacheService.getKam(kamInfo.getName());
              if (objKam == null) {
                  throw new KamStoreServiceException(
                          new InvalidIdException(kamElementRef.getEncodedString()));
              }
  
              // Get the real KamNode from the Kam
              org.openbel.framework.api.Kam.KamNode objKamNode =
                      objKam.findNode(kamElementRef.getKamStoreObjectId());
              // Get the supporting terms for the node
              for (org.openbel.framework.api.internal.KAMStoreDaoImpl.BelTerm objBelTerm : kAMStore
                      .getSupportingTerms(objKamNode)) {
                  list.add(convert(objBelTerm, kamInfo));
              }
          } catch (KAMStoreException e) {
              logger.warn(e.getMessage());
              throw new KamStoreServiceException(e);
          }
  
          return list;
      }
docs: {@inheritDoc}