/* * Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.cloudsearchv2.model; import java.io.Serializable; import javax.annotation.Generated; /** * <p> * Configuration information for a field in the index, including its name, type, and options. The supported options * depend on the <code><a>IndexFieldType</a></code>. * </p> */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class IndexField implements Serializable, Cloneable { /** * <p> * A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic * fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that * don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's * indexing options. * </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ * (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only * character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can * use the name <code>_id</code>. * </p> */ private String indexFieldName; private String indexFieldType; private IntOptions intOptions; private DoubleOptions doubleOptions; private LiteralOptions literalOptions; private TextOptions textOptions; private DateOptions dateOptions; private LatLonOptions latLonOptions; private IntArrayOptions intArrayOptions; private DoubleArrayOptions doubleArrayOptions; private LiteralArrayOptions literalArrayOptions; private TextArrayOptions textArrayOptions; private DateArrayOptions dateArrayOptions; /** * <p> * A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic * fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that * don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's * indexing options. * </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ * (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only * character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can * use the name <code>_id</code>. * </p> * * @param indexFieldName * A string that represents the name of an index field. CloudSearch supports regular index fields as well as * dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document * fields that don't map to a regular index field but do match a dynamic field's pattern are configured with * the dynamic field's indexing options. </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, * and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be * the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are * not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, * you can use the name <code>_id</code>. */ public void setIndexFieldName(String indexFieldName) { this.indexFieldName = indexFieldName; } /** * <p> * A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic * fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that * don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's * indexing options. * </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ * (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only * character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can * use the name <code>_id</code>. * </p> * * @return A string that represents the name of an index field. CloudSearch supports regular index fields as well as * dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any * document fields that don't map to a regular index field but do match a dynamic field's pattern are * configured with the dynamic field's indexing options. </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, * and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be * the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string * are not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, * you can use the name <code>_id</code>. */ public String getIndexFieldName() { return this.indexFieldName; } /** * <p> * A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic * fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that * don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's * indexing options. * </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ * (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only * character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can * use the name <code>_id</code>. * </p> * * @param indexFieldName * A string that represents the name of an index field. CloudSearch supports regular index fields as well as * dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document * fields that don't map to a regular index field but do match a dynamic field's pattern are configured with * the dynamic field's indexing options. </p> * <p> * Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, * and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be * the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are * not supported. * </p> * <p> * The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, * you can use the name <code>_id</code>. * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withIndexFieldName(String indexFieldName) { setIndexFieldName(indexFieldName); return this; } /** * @param indexFieldType * @see IndexFieldType */ public void setIndexFieldType(String indexFieldType) { this.indexFieldType = indexFieldType; } /** * @return * @see IndexFieldType */ public String getIndexFieldType() { return this.indexFieldType; } /** * @param indexFieldType * @return Returns a reference to this object so that method calls can be chained together. * @see IndexFieldType */ public IndexField withIndexFieldType(String indexFieldType) { setIndexFieldType(indexFieldType); return this; } /** * @param indexFieldType * @see IndexFieldType */ public void setIndexFieldType(IndexFieldType indexFieldType) { this.indexFieldType = indexFieldType.toString(); } /** * @param indexFieldType * @return Returns a reference to this object so that method calls can be chained together. * @see IndexFieldType */ public IndexField withIndexFieldType(IndexFieldType indexFieldType) { setIndexFieldType(indexFieldType); return this; } /** * @param intOptions */ public void setIntOptions(IntOptions intOptions) { this.intOptions = intOptions; } /** * @return */ public IntOptions getIntOptions() { return this.intOptions; } /** * @param intOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withIntOptions(IntOptions intOptions) { setIntOptions(intOptions); return this; } /** * @param doubleOptions */ public void setDoubleOptions(DoubleOptions doubleOptions) { this.doubleOptions = doubleOptions; } /** * @return */ public DoubleOptions getDoubleOptions() { return this.doubleOptions; } /** * @param doubleOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withDoubleOptions(DoubleOptions doubleOptions) { setDoubleOptions(doubleOptions); return this; } /** * @param literalOptions */ public void setLiteralOptions(LiteralOptions literalOptions) { this.literalOptions = literalOptions; } /** * @return */ public LiteralOptions getLiteralOptions() { return this.literalOptions; } /** * @param literalOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withLiteralOptions(LiteralOptions literalOptions) { setLiteralOptions(literalOptions); return this; } /** * @param textOptions */ public void setTextOptions(TextOptions textOptions) { this.textOptions = textOptions; } /** * @return */ public TextOptions getTextOptions() { return this.textOptions; } /** * @param textOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withTextOptions(TextOptions textOptions) { setTextOptions(textOptions); return this; } /** * @param dateOptions */ public void setDateOptions(DateOptions dateOptions) { this.dateOptions = dateOptions; } /** * @return */ public DateOptions getDateOptions() { return this.dateOptions; } /** * @param dateOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withDateOptions(DateOptions dateOptions) { setDateOptions(dateOptions); return this; } /** * @param latLonOptions */ public void setLatLonOptions(LatLonOptions latLonOptions) { this.latLonOptions = latLonOptions; } /** * @return */ public LatLonOptions getLatLonOptions() { return this.latLonOptions; } /** * @param latLonOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withLatLonOptions(LatLonOptions latLonOptions) { setLatLonOptions(latLonOptions); return this; } /** * @param intArrayOptions */ public void setIntArrayOptions(IntArrayOptions intArrayOptions) { this.intArrayOptions = intArrayOptions; } /** * @return */ public IntArrayOptions getIntArrayOptions() { return this.intArrayOptions; } /** * @param intArrayOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withIntArrayOptions(IntArrayOptions intArrayOptions) { setIntArrayOptions(intArrayOptions); return this; } /** * @param doubleArrayOptions */ public void setDoubleArrayOptions(DoubleArrayOptions doubleArrayOptions) { this.doubleArrayOptions = doubleArrayOptions; } /** * @return */ public DoubleArrayOptions getDoubleArrayOptions() { return this.doubleArrayOptions; } /** * @param doubleArrayOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withDoubleArrayOptions(DoubleArrayOptions doubleArrayOptions) { setDoubleArrayOptions(doubleArrayOptions); return this; } /** * @param literalArrayOptions */ public void setLiteralArrayOptions(LiteralArrayOptions literalArrayOptions) { this.literalArrayOptions = literalArrayOptions; } /** * @return */ public LiteralArrayOptions getLiteralArrayOptions() { return this.literalArrayOptions; } /** * @param literalArrayOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withLiteralArrayOptions(LiteralArrayOptions literalArrayOptions) { setLiteralArrayOptions(literalArrayOptions); return this; } /** * @param textArrayOptions */ public void setTextArrayOptions(TextArrayOptions textArrayOptions) { this.textArrayOptions = textArrayOptions; } /** * @return */ public TextArrayOptions getTextArrayOptions() { return this.textArrayOptions; } /** * @param textArrayOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withTextArrayOptions(TextArrayOptions textArrayOptions) { setTextArrayOptions(textArrayOptions); return this; } /** * @param dateArrayOptions */ public void setDateArrayOptions(DateArrayOptions dateArrayOptions) { this.dateArrayOptions = dateArrayOptions; } /** * @return */ public DateArrayOptions getDateArrayOptions() { return this.dateArrayOptions; } /** * @param dateArrayOptions * @return Returns a reference to this object so that method calls can be chained together. */ public IndexField withDateArrayOptions(DateArrayOptions dateArrayOptions) { setDateArrayOptions(dateArrayOptions); return this; } /** * Returns a string representation of this object; useful for testing and debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getIndexFieldName() != null) sb.append("IndexFieldName: ").append(getIndexFieldName()).append(","); if (getIndexFieldType() != null) sb.append("IndexFieldType: ").append(getIndexFieldType()).append(","); if (getIntOptions() != null) sb.append("IntOptions: ").append(getIntOptions()).append(","); if (getDoubleOptions() != null) sb.append("DoubleOptions: ").append(getDoubleOptions()).append(","); if (getLiteralOptions() != null) sb.append("LiteralOptions: ").append(getLiteralOptions()).append(","); if (getTextOptions() != null) sb.append("TextOptions: ").append(getTextOptions()).append(","); if (getDateOptions() != null) sb.append("DateOptions: ").append(getDateOptions()).append(","); if (getLatLonOptions() != null) sb.append("LatLonOptions: ").append(getLatLonOptions()).append(","); if (getIntArrayOptions() != null) sb.append("IntArrayOptions: ").append(getIntArrayOptions()).append(","); if (getDoubleArrayOptions() != null) sb.append("DoubleArrayOptions: ").append(getDoubleArrayOptions()).append(","); if (getLiteralArrayOptions() != null) sb.append("LiteralArrayOptions: ").append(getLiteralArrayOptions()).append(","); if (getTextArrayOptions() != null) sb.append("TextArrayOptions: ").append(getTextArrayOptions()).append(","); if (getDateArrayOptions() != null) sb.append("DateArrayOptions: ").append(getDateArrayOptions()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof IndexField == false) return false; IndexField other = (IndexField) obj; if (other.getIndexFieldName() == null ^ this.getIndexFieldName() == null) return false; if (other.getIndexFieldName() != null && other.getIndexFieldName().equals(this.getIndexFieldName()) == false) return false; if (other.getIndexFieldType() == null ^ this.getIndexFieldType() == null) return false; if (other.getIndexFieldType() != null && other.getIndexFieldType().equals(this.getIndexFieldType()) == false) return false; if (other.getIntOptions() == null ^ this.getIntOptions() == null) return false; if (other.getIntOptions() != null && other.getIntOptions().equals(this.getIntOptions()) == false) return false; if (other.getDoubleOptions() == null ^ this.getDoubleOptions() == null) return false; if (other.getDoubleOptions() != null && other.getDoubleOptions().equals(this.getDoubleOptions()) == false) return false; if (other.getLiteralOptions() == null ^ this.getLiteralOptions() == null) return false; if (other.getLiteralOptions() != null && other.getLiteralOptions().equals(this.getLiteralOptions()) == false) return false; if (other.getTextOptions() == null ^ this.getTextOptions() == null) return false; if (other.getTextOptions() != null && other.getTextOptions().equals(this.getTextOptions()) == false) return false; if (other.getDateOptions() == null ^ this.getDateOptions() == null) return false; if (other.getDateOptions() != null && other.getDateOptions().equals(this.getDateOptions()) == false) return false; if (other.getLatLonOptions() == null ^ this.getLatLonOptions() == null) return false; if (other.getLatLonOptions() != null && other.getLatLonOptions().equals(this.getLatLonOptions()) == false) return false; if (other.getIntArrayOptions() == null ^ this.getIntArrayOptions() == null) return false; if (other.getIntArrayOptions() != null && other.getIntArrayOptions().equals(this.getIntArrayOptions()) == false) return false; if (other.getDoubleArrayOptions() == null ^ this.getDoubleArrayOptions() == null) return false; if (other.getDoubleArrayOptions() != null && other.getDoubleArrayOptions().equals(this.getDoubleArrayOptions()) == false) return false; if (other.getLiteralArrayOptions() == null ^ this.getLiteralArrayOptions() == null) return false; if (other.getLiteralArrayOptions() != null && other.getLiteralArrayOptions().equals(this.getLiteralArrayOptions()) == false) return false; if (other.getTextArrayOptions() == null ^ this.getTextArrayOptions() == null) return false; if (other.getTextArrayOptions() != null && other.getTextArrayOptions().equals(this.getTextArrayOptions()) == false) return false; if (other.getDateArrayOptions() == null ^ this.getDateArrayOptions() == null) return false; if (other.getDateArrayOptions() != null && other.getDateArrayOptions().equals(this.getDateArrayOptions()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getIndexFieldName() == null) ? 0 : getIndexFieldName().hashCode()); hashCode = prime * hashCode + ((getIndexFieldType() == null) ? 0 : getIndexFieldType().hashCode()); hashCode = prime * hashCode + ((getIntOptions() == null) ? 0 : getIntOptions().hashCode()); hashCode = prime * hashCode + ((getDoubleOptions() == null) ? 0 : getDoubleOptions().hashCode()); hashCode = prime * hashCode + ((getLiteralOptions() == null) ? 0 : getLiteralOptions().hashCode()); hashCode = prime * hashCode + ((getTextOptions() == null) ? 0 : getTextOptions().hashCode()); hashCode = prime * hashCode + ((getDateOptions() == null) ? 0 : getDateOptions().hashCode()); hashCode = prime * hashCode + ((getLatLonOptions() == null) ? 0 : getLatLonOptions().hashCode()); hashCode = prime * hashCode + ((getIntArrayOptions() == null) ? 0 : getIntArrayOptions().hashCode()); hashCode = prime * hashCode + ((getDoubleArrayOptions() == null) ? 0 : getDoubleArrayOptions().hashCode()); hashCode = prime * hashCode + ((getLiteralArrayOptions() == null) ? 0 : getLiteralArrayOptions().hashCode()); hashCode = prime * hashCode + ((getTextArrayOptions() == null) ? 0 : getTextArrayOptions().hashCode()); hashCode = prime * hashCode + ((getDateArrayOptions() == null) ? 0 : getDateArrayOptions().hashCode()); return hashCode; } @Override public IndexField clone() { try { return (IndexField) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }