public static Stella_Object access_phoneNumber_Slot_Value(PhoneNumber self, Symbol slotname, Stella_Object value, boolean setvalueP) {
    if (slotname == AddressExample.SYM_ADDRESS_EXAMPLE_areaCode) {
      if (setvalueP) {
        self.areaCode = ((AreaCode)(value));
      }
      else {
        value = self.areaCode;
      }
    }
    else if (slotname == AddressExample.SYM_ADDRESS_EXAMPLE_exchange) {
      if (setvalueP) {
        self.exchange = ((Exchange)(value));
      }
      else {
        value = self.exchange;
      }
    }
    else if (slotname == AddressExample.SYM_ADDRESS_EXAMPLE_number) {
      if (setvalueP) {
        self.number = ((Number)(value));
      }
      else {
        value = self.number;
      }
    }
    else if (slotname == AddressExample.SYM_XSI_type) {
      if (setvalueP) {
        self.type = ((StringWrapper)(value)).wrapperValue;
      }
      else {
        value = StringWrapper.wrapString(self.type);
      }
    }
    else {
      { OutputStringStream STREAM_000 = OutputStringStream.newOutputStringStream();

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