All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hydra.langs.tinkerpop.features.ElementFeatures Maven / Gradle / Ivy

package hydra.langs.tinkerpop.features;

import java.io.Serializable;

/**
 * Features that are related to Element objects.
 */
public class ElementFeatures implements Serializable {
  public static final hydra.core.Name NAME = new hydra.core.Name("hydra/langs/tinkerpop/features.ElementFeatures");
  
  /**
   * Determines if an Element allows properties to be added.
   */
  public final Boolean supportsAddProperty;
  
  /**
   * Determines if an Element any Java object is a suitable identifier.
   */
  public final Boolean supportsAnyIds;
  
  /**
   * Determines if an Element has a specific custom object as their internal representation.
   */
  public final Boolean supportsCustomIds;
  
  /**
   * Determines if an Element has numeric identifiers as their internal representation.
   */
  public final Boolean supportsNumericIds;
  
  /**
   * Determines if an Element allows properties to be removed.
   */
  public final Boolean supportsRemoveProperty;
  
  /**
   * Determines if an Element has string identifiers as their internal representation.
   */
  public final Boolean supportsStringIds;
  
  /**
   * Determines if an Element can have a user defined identifier.
   */
  public final Boolean supportsUserSuppliedIds;
  
  /**
   * Determines if an Element has UUID identifiers as their internal representation.
   */
  public final Boolean supportsUuidIds;
  
  public ElementFeatures (Boolean supportsAddProperty, Boolean supportsAnyIds, Boolean supportsCustomIds, Boolean supportsNumericIds, Boolean supportsRemoveProperty, Boolean supportsStringIds, Boolean supportsUserSuppliedIds, Boolean supportsUuidIds) {
    this.supportsAddProperty = supportsAddProperty;
    this.supportsAnyIds = supportsAnyIds;
    this.supportsCustomIds = supportsCustomIds;
    this.supportsNumericIds = supportsNumericIds;
    this.supportsRemoveProperty = supportsRemoveProperty;
    this.supportsStringIds = supportsStringIds;
    this.supportsUserSuppliedIds = supportsUserSuppliedIds;
    this.supportsUuidIds = supportsUuidIds;
  }
  
  @Override
  public boolean equals(Object other) {
    if (!(other instanceof ElementFeatures)) {
      return false;
    }
    ElementFeatures o = (ElementFeatures) (other);
    return supportsAddProperty.equals(o.supportsAddProperty) && supportsAnyIds.equals(o.supportsAnyIds) && supportsCustomIds.equals(o.supportsCustomIds) && supportsNumericIds.equals(o.supportsNumericIds) && supportsRemoveProperty.equals(o.supportsRemoveProperty) && supportsStringIds.equals(o.supportsStringIds) && supportsUserSuppliedIds.equals(o.supportsUserSuppliedIds) && supportsUuidIds.equals(o.supportsUuidIds);
  }
  
  @Override
  public int hashCode() {
    return 2 * supportsAddProperty.hashCode() + 3 * supportsAnyIds.hashCode() + 5 * supportsCustomIds.hashCode() + 7 * supportsNumericIds.hashCode() + 11 * supportsRemoveProperty.hashCode() + 13 * supportsStringIds.hashCode() + 17 * supportsUserSuppliedIds.hashCode() + 19 * supportsUuidIds.hashCode();
  }
  
  public ElementFeatures withSupportsAddProperty(Boolean supportsAddProperty) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsAnyIds(Boolean supportsAnyIds) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsCustomIds(Boolean supportsCustomIds) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsNumericIds(Boolean supportsNumericIds) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsRemoveProperty(Boolean supportsRemoveProperty) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsStringIds(Boolean supportsStringIds) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsUserSuppliedIds(Boolean supportsUserSuppliedIds) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
  
  public ElementFeatures withSupportsUuidIds(Boolean supportsUuidIds) {
    return new ElementFeatures(supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy