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

io.github.endreman0.javajson.nodes.Field Maven / Gradle / Ivy

package io.github.endreman0.javajson.nodes;

import java.util.Map.Entry;

/**
 * A field represents a key-value pair in an {@linkplain ObjectNode object}.
 * @author endreman0
 */
public class Field implements Entry{
	/**
	 * The string key.
	 */
	private String key;
	/**
	 * The node value.
	 */
	private Node value;
	/**
	 * Basic constructor, with a key and a value.
	 * @param key The key
	 * @param value The value
	 */
	public Field(String key, Node value){
		this.key = key == null ? "" : key;
		this.value = value == null ? new NullNode() : value;
	}
	@Override public String getKey(){return key;}
	@Override public Node getValue(){return value;}
	@Override
	public Node setValue(Node value){
		Node old = this.value;
		this.value = value;
		return old;
	}
	@Override public String toString(){return "\"" + key + "\" : " + value.json();}
	@Override
	public boolean equals(Object obj){
		if(obj instanceof Field){
			Field field = (Field)obj;
			return key.equals(field.key) && value.equals(field.value);
		}else return false;
	}
	@Override public int hashCode(){return key.hashCode() * value.hashCode();} 
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy