/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: AbstractValidationRule.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.site; import java.util.logging.Logger; import com.uwyn.rife.tools.ExceptionUtils; public abstract class AbstractValidationRule implements ValidationRule { private Object mBean = null; private String mCachedSubject = null; protected AbstractValidationRule() { } abstract public boolean validate(); abstract public ValidationError getError(); public String getSubject() { if (null == mCachedSubject) { mCachedSubject = getError().getSubject(); } return mCachedSubject; } public <T extends ValidationRule> T setBean(Object bean) { mBean = bean; return (T)this; } public Object getBean() { return mBean; } public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException e) { ///CLOVER:OFF // this should never happen Logger.getLogger("com.uwyn.rife.site").severe(ExceptionUtils.getExceptionStackTrace(e)); return null; ///CLOVER:ON } } }