public DowntimeDescriptor() {
    super();
    _nsURI = "http://xmlns.opennms.org/xsd/config/poller";
    _xmlName = "downtime";
    _elementDefinition = true;
    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
    org.exolab.castor.mapping.FieldHandler handler = null;
    org.exolab.castor.xml.FieldValidator fieldValidator = null;
    // -- initialize attribute descriptors

    // -- _begin
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Long.TYPE, "_begin", "begin", org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Downtime target = (Downtime) object;
            if (!target.hasBegin()) {
              return null;
            }
            return new java.lang.Long(target.getBegin());
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Downtime target = (Downtime) object;
              // ignore null values for non optional primitives
              if (value == null) {
                return;
              }

              target.setBegin(((java.lang.Long) value).longValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("long");
    desc.setHandler(handler);
    desc.setRequired(true);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _begin
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(1);
    { // -- local scope
      org.exolab.castor.xml.validators.LongValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setMinInclusive(-9223372036854775808L);
      typeValidator.setMaxInclusive(9223372036854775807L);
    }
    desc.setValidator(fieldValidator);
    // -- _end
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Long.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Downtime target = (Downtime) object;
            if (!target.hasEnd()) {
              return null;
            }
            return new java.lang.Long(target.getEnd());
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Downtime target = (Downtime) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteEnd();
                return;
              }
              target.setEnd(((java.lang.Long) value).longValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("long");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _end
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.LongValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setMinInclusive(-9223372036854775808L);
      typeValidator.setMaxInclusive(9223372036854775807L);
    }
    desc.setValidator(fieldValidator);
    // -- _delete
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.String.class, "_delete", "delete", org.exolab.castor.xml.NodeType.Attribute);
    desc.setImmutable(true);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Downtime target = (Downtime) object;
            return target.getDelete();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Downtime target = (Downtime) object;
              target.setDelete((java.lang.String) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("string");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _delete
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.StringValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.addPattern("(yes|true)");
      typeValidator.setWhiteSpace("preserve");
    }
    desc.setValidator(fieldValidator);
    // -- _interval
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Long.TYPE, "_interval", "interval", org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Downtime target = (Downtime) object;
            if (!target.hasInterval()) {
              return null;
            }
            return new java.lang.Long(target.getInterval());
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Downtime target = (Downtime) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteInterval();
                return;
              }
              target.setInterval(((java.lang.Long) value).longValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("long");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _interval
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.LongValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setMinInclusive(-9223372036854775808L);
      typeValidator.setMaxInclusive(9223372036854775807L);
    }
    desc.setValidator(fieldValidator);
    // -- initialize element descriptors

  }
  public PackageDescriptor() {
    super();
    _nsURI = "http://xmlns.opennms.org/xsd/config/linkd";
    _xmlName = "package";
    _elementDefinition = true;

    // -- set grouping compositor
    setCompositorAsSequence();
    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
    org.exolab.castor.mapping.FieldHandler handler = null;
    org.exolab.castor.xml.FieldValidator fieldValidator = null;
    // -- initialize attribute descriptors

    // -- _name
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);
    desc.setImmutable(true);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            return target.getName();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.setName((java.lang.String) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("string");
    desc.setHandler(handler);
    desc.setRequired(true);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _name
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(1);
    { // -- local scope
      org.exolab.castor.xml.validators.StringValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setWhiteSpace("preserve");
    }
    desc.setValidator(fieldValidator);
    // -- _snmp_poll_interval
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Long.TYPE,
            "_snmp_poll_interval",
            "snmp_poll_interval",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasSnmp_poll_interval()) {
              return null;
            }
            return new java.lang.Long(target.getSnmp_poll_interval());
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteSnmp_poll_interval();
                return;
              }
              target.setSnmp_poll_interval(((java.lang.Long) value).longValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("long");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _snmp_poll_interval
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.LongValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setMinInclusive(-9223372036854775808L);
      typeValidator.setMaxInclusive(9223372036854775807L);
    }
    desc.setValidator(fieldValidator);
    // -- _discovery_link_interval
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Long.TYPE,
            "_discovery_link_interval",
            "discovery_link_interval",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasDiscovery_link_interval()) {
              return null;
            }
            return new java.lang.Long(target.getDiscovery_link_interval());
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteDiscovery_link_interval();
                return;
              }
              target.setDiscovery_link_interval(((java.lang.Long) value).longValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("long");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _discovery_link_interval
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.LongValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setMinInclusive(-9223372036854775808L);
      typeValidator.setMaxInclusive(9223372036854775807L);
    }
    desc.setValidator(fieldValidator);
    // -- _autoDiscovery
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_autoDiscovery",
            "auto-discovery",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasAutoDiscovery()) {
              return null;
            }
            return (target.getAutoDiscovery() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteAutoDiscovery();
                return;
              }
              target.setAutoDiscovery(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _autoDiscovery
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _enableDiscoveryDownload
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_enableDiscoveryDownload",
            "enable-discovery-download",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasEnableDiscoveryDownload()) {
              return null;
            }
            return (target.getEnableDiscoveryDownload()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteEnableDiscoveryDownload();
                return;
              }
              target.setEnableDiscoveryDownload(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _enableDiscoveryDownload
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _enableVlanDiscovery
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_enableVlanDiscovery",
            "enable-vlan-discovery",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasEnableVlanDiscovery()) {
              return null;
            }
            return (target.getEnableVlanDiscovery()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteEnableVlanDiscovery();
                return;
              }
              target.setEnableVlanDiscovery(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _enableVlanDiscovery
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _useCdpDiscovery
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_useCdpDiscovery",
            "use-cdp-discovery",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasUseCdpDiscovery()) {
              return null;
            }
            return (target.getUseCdpDiscovery() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteUseCdpDiscovery();
                return;
              }
              target.setUseCdpDiscovery(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _useCdpDiscovery
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _useIpRouteDiscovery
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_useIpRouteDiscovery",
            "use-ip-route-discovery",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasUseIpRouteDiscovery()) {
              return null;
            }
            return (target.getUseIpRouteDiscovery()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteUseIpRouteDiscovery();
                return;
              }
              target.setUseIpRouteDiscovery(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _useIpRouteDiscovery
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _useBridgeDiscovery
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_useBridgeDiscovery",
            "use-bridge-discovery",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasUseBridgeDiscovery()) {
              return null;
            }
            return (target.getUseBridgeDiscovery()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteUseBridgeDiscovery();
                return;
              }
              target.setUseBridgeDiscovery(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _useBridgeDiscovery
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _saveRouteTable
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_saveRouteTable",
            "save-route-table",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasSaveRouteTable()) {
              return null;
            }
            return (target.getSaveRouteTable() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteSaveRouteTable();
                return;
              }
              target.setSaveRouteTable(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _saveRouteTable
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _saveStpNodeTable
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_saveStpNodeTable",
            "save-stp-node-table",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasSaveStpNodeTable()) {
              return null;
            }
            return (target.getSaveStpNodeTable()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteSaveStpNodeTable();
                return;
              }
              target.setSaveStpNodeTable(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _saveStpNodeTable
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _saveStpInterfaceTable
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_saveStpInterfaceTable",
            "save-stp-interface-table",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasSaveStpInterfaceTable()) {
              return null;
            }
            return (target.getSaveStpInterfaceTable()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteSaveStpInterfaceTable();
                return;
              }
              target.setSaveStpInterfaceTable(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _saveStpInterfaceTable
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- _forceIpRouteDiscoveryOnEthernet
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.Boolean.TYPE,
            "_forceIpRouteDiscoveryOnEthernet",
            "force-ip-route-discovery-on-ethernet",
            org.exolab.castor.xml.NodeType.Attribute);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            if (!target.hasForceIpRouteDiscoveryOnEthernet()) {
              return null;
            }
            return (target.getForceIpRouteDiscoveryOnEthernet()
                ? java.lang.Boolean.TRUE
                : java.lang.Boolean.FALSE);
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              // if null, use delete method for optional primitives
              if (value == null) {
                target.deleteForceIpRouteDiscoveryOnEthernet();
                return;
              }
              target.setForceIpRouteDiscoveryOnEthernet(((java.lang.Boolean) value).booleanValue());
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("boolean");
    desc.setHandler(handler);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);

    // -- validation code for: _forceIpRouteDiscoveryOnEthernet
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    { // -- local scope
      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
      fieldValidator.setValidator(typeValidator);
    }
    desc.setValidator(fieldValidator);
    // -- initialize element descriptors

    // -- _filter
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            org.opennms.netmgt.config.linkd.Filter.class,
            "_filter",
            "filter",
            org.exolab.castor.xml.NodeType.Element);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            return target.getFilter();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.setFilter((org.opennms.netmgt.config.linkd.Filter) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return new org.opennms.netmgt.config.linkd.Filter();
          }
        };
    desc.setSchemaType("org.opennms.netmgt.config.linkd.Filter");
    desc.setHandler(handler);
    desc.setNameSpaceURI("http://xmlns.opennms.org/xsd/config/linkd");
    desc.setRequired(true);
    desc.setMultivalued(false);
    addFieldDescriptor(desc);
    addSequenceElement(desc);

    // -- validation code for: _filter
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(1);
    { // -- local scope
    }
    desc.setValidator(fieldValidator);
    // -- _specificList
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.String.class,
            "_specificList",
            "specific",
            org.exolab.castor.xml.NodeType.Element);
    desc.setImmutable(true);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            return target.getSpecific();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.addSpecific((java.lang.String) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          public void resetValue(Object object)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.removeAllSpecific();
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("string");
    desc.setHandler(handler);
    desc.setNameSpaceURI("http://xmlns.opennms.org/xsd/config/linkd");
    desc.setMultivalued(true);
    addFieldDescriptor(desc);
    addSequenceElement(desc);

    // -- validation code for: _specificList
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(0);
    { // -- local scope
      org.exolab.castor.xml.validators.StringValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setWhiteSpace("preserve");
    }
    desc.setValidator(fieldValidator);
    // -- _includeRangeList
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            org.opennms.netmgt.config.linkd.IncludeRange.class,
            "_includeRangeList",
            "include-range",
            org.exolab.castor.xml.NodeType.Element);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            return target.getIncludeRange();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.addIncludeRange((org.opennms.netmgt.config.linkd.IncludeRange) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          public void resetValue(Object object)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.removeAllIncludeRange();
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return new org.opennms.netmgt.config.linkd.IncludeRange();
          }
        };
    desc.setSchemaType("org.opennms.netmgt.config.linkd.IncludeRange");
    desc.setHandler(handler);
    desc.setNameSpaceURI("http://xmlns.opennms.org/xsd/config/linkd");
    desc.setMultivalued(true);
    addFieldDescriptor(desc);
    addSequenceElement(desc);

    // -- validation code for: _includeRangeList
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(0);
    { // -- local scope
    }
    desc.setValidator(fieldValidator);
    // -- _excludeRangeList
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            org.opennms.netmgt.config.linkd.ExcludeRange.class,
            "_excludeRangeList",
            "exclude-range",
            org.exolab.castor.xml.NodeType.Element);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            return target.getExcludeRange();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.addExcludeRange((org.opennms.netmgt.config.linkd.ExcludeRange) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          public void resetValue(Object object)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.removeAllExcludeRange();
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return new org.opennms.netmgt.config.linkd.ExcludeRange();
          }
        };
    desc.setSchemaType("org.opennms.netmgt.config.linkd.ExcludeRange");
    desc.setHandler(handler);
    desc.setNameSpaceURI("http://xmlns.opennms.org/xsd/config/linkd");
    desc.setMultivalued(true);
    addFieldDescriptor(desc);
    addSequenceElement(desc);

    // -- validation code for: _excludeRangeList
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(0);
    { // -- local scope
    }
    desc.setValidator(fieldValidator);
    // -- _includeUrlList
    desc =
        new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
            java.lang.String.class,
            "_includeUrlList",
            "include-url",
            org.exolab.castor.xml.NodeType.Element);
    desc.setImmutable(true);
    handler =
        new org.exolab.castor.xml.XMLFieldHandler() {
          @Override
          public java.lang.Object getValue(java.lang.Object object) throws IllegalStateException {
            Package target = (Package) object;
            return target.getIncludeUrl();
          }

          @Override
          public void setValue(java.lang.Object object, java.lang.Object value)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.addIncludeUrl((java.lang.String) value);
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          public void resetValue(Object object)
              throws IllegalStateException, IllegalArgumentException {
            try {
              Package target = (Package) object;
              target.removeAllIncludeUrl();
            } catch (java.lang.Exception ex) {
              throw new IllegalStateException(ex.toString());
            }
          }

          @Override
          @SuppressWarnings("unused")
          public java.lang.Object newInstance(java.lang.Object parent) {
            return null;
          }
        };
    desc.setSchemaType("string");
    desc.setHandler(handler);
    desc.setNameSpaceURI("http://xmlns.opennms.org/xsd/config/linkd");
    desc.setMultivalued(true);
    addFieldDescriptor(desc);
    addSequenceElement(desc);

    // -- validation code for: _includeUrlList
    fieldValidator = new org.exolab.castor.xml.FieldValidator();
    fieldValidator.setMinOccurs(0);
    { // -- local scope
      org.exolab.castor.xml.validators.StringValidator typeValidator;
      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
      fieldValidator.setValidator(typeValidator);
      typeValidator.setWhiteSpace("preserve");
    }
    desc.setValidator(fieldValidator);
  }