/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.tck.testmodels.fruit; import org.mule.runtime.core.api.MuleContext; import org.mule.runtime.core.api.Event; import org.mule.runtime.api.exception.MuleException; import org.mule.runtime.api.lifecycle.Disposable; import org.mule.runtime.api.lifecycle.Startable; import org.mule.runtime.api.lifecycle.Stoppable; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class WaterMelon implements Fruit, Startable, Stoppable, Disposable { /** * Serial version */ private static final long serialVersionUID = -8860598811203869100L; /** * logger used by this class */ private static final Logger logger = LoggerFactory.getLogger(WaterMelon.class); private boolean bitten = false; private Integer seeds = new Integer(100); private Double radius = new Double(4.34); private String brand; private String state = "void"; public WaterMelon() { super(); } public WaterMelon(HashMap props) throws MuleException { logger.info("Initialisaing Water melon with hashmap constructor"); setBrand((String) props.get("namespace.brand")); setRadius((Double) props.get("another.namespace.radius")); setSeeds((Integer) props.get("seeds")); state = "initialised"; } @Override public void bite() { bitten = true; } @Override public boolean isBitten() { return bitten; } public void myEventHandler(Event event, MuleContext muleContext) throws MuleException { logger.debug("Water Melon received an event in MyEventHandler! MuleEvent says: " + event.getMessageAsString(null)); bite(); } public String getBrand() { return brand; } public Integer getSeeds() { return seeds; } public Double getRadius() { return radius; } public void setBrand(String string) { brand = string; } public void setSeeds(Integer integer) { seeds = integer; } public void setRadius(Double double1) { radius = double1; } public String getState() { return state; } @Override public void start() { state = "started"; } @Override public void stop() { state = "stopped"; } @Override public void dispose() { state = "disposed"; } @Override public boolean equals(Object obj) { if (obj instanceof WaterMelon) { WaterMelon melon = (WaterMelon) obj; return (getBrand().equals(melon.getBrand()) && getRadius().equals(melon.getRadius()) && getSeeds().equals(melon.getSeeds()) && getState().equals(getState())); } return super.equals(obj); } @Override public int hashCode() { int result; result = (bitten ? 1 : 0); result = 31 * result + seeds.hashCode(); result = 31 * result + radius.hashCode(); result = 31 * result + (brand != null ? brand.hashCode() : 0); result = 31 * result + state.hashCode(); return result; } }