/* * 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.MuleEventContext; import org.mule.runtime.api.exception.MuleException; import org.mule.runtime.core.api.context.MuleContextAware; import org.mule.runtime.core.api.lifecycle.Callable; import org.mule.tck.testmodels.fruit.peel.ApplePeel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Apple implements Fruit, Callable, MuleContextAware { /** * Serial version */ private static final long serialVersionUID = -7631993371500076921L; /** * logger used by this class */ private static final Logger logger = LoggerFactory.getLogger(Apple.class); private boolean bitten = false; private boolean washed = false; private FruitCleaner appleCleaner; private Seed seed; private MuleContext muleContext; private ApplePeel peel; public Apple() {} public Apple(boolean bitten) { this.bitten = bitten; } public void wash() { if (appleCleaner != null) { appleCleaner.wash(this); } washed = true; } public void polish() { appleCleaner.polish(this); } public boolean isWashed() { return washed; } @Override public void bite() { bitten = true; } @Override public boolean isBitten() { return bitten; } public Seed getSeed() { return seed; } public void setSeed(Seed seed) { this.seed = seed; } @Override public Object onCall(MuleEventContext context) throws MuleException { logger.debug("Apple received an event in Callable.onEvent! MuleEvent says: " + context.getMessageAsString(muleContext)); wash(); return null; } public FruitCleaner getAppleCleaner() { return appleCleaner; } public void setAppleCleaner(FruitCleaner cleaner) { this.appleCleaner = cleaner; } public Object methodReturningNull() { return null; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final Apple apple = (Apple) o; if (bitten != apple.bitten) { return false; } if (washed != apple.washed) { return false; } return true; } @Override public int hashCode() { int result; result = (bitten ? 1 : 0); result = 29 * result + (washed ? 1 : 0); return result; } @Override public String toString() { return "Just an apple."; } public void setBitten(boolean bitten) { this.bitten = bitten; } public void setWashed(boolean washed) { this.washed = washed; } @Override public void setMuleContext(MuleContext context) { this.muleContext = context; } public MuleContext getMuleContext() { return muleContext; } public ApplePeel getPeel() { return peel; } }