public static Stella_Object accessTransitiveClosureIteratorSlotValue(TransitiveClosureIterator self, Symbol slotname, Stella_Object value, boolean setvalueP) {
    if (slotname == Logic.SYM_LOGIC_ALLOCATE_ADJACENCY_ITERATOR_FUNCTION) {
      if (setvalueP) {
        self.allocateAdjacencyIteratorFunction = ((FunctionCodeWrapper)(value)).wrapperValue;
      }
      else {
        value = FunctionCodeWrapper.wrapFunctionCode(self.allocateAdjacencyIteratorFunction);
      }
    }
    else if (slotname == Logic.SYM_LOGIC_FILTERp) {
      if (setvalueP) {
        self.filterP = ((FunctionCodeWrapper)(value)).wrapperValue;
      }
      else {
        value = FunctionCodeWrapper.wrapFunctionCode(self.filterP);
      }
    }
    else if (slotname == Logic.SYM_LOGIC_ADJACENCY_ITERATOR_STACK) {
      if (setvalueP) {
        self.adjacencyIteratorStack = ((Cons)(value));
      }
      else {
        value = self.adjacencyIteratorStack;
      }
    }
    else if (slotname == Logic.SYM_LOGIC_BEEN_THERE_LIST) {
      if (setvalueP) {
        self.beenThereList = ((Cons)(value));
      }
      else {
        value = self.beenThereList;
      }
    }
    else {
      { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

        stream000.nativeStream.print("`" + slotname + "' is not a valid case option");
        throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
      }
    }
    return (value);
  }