diff options
Diffstat (limited to 'offapi/com/sun/star/form/validation')
8 files changed, 662 insertions, 0 deletions
diff --git a/offapi/com/sun/star/form/validation/ValidatableBindableControlModel.idl b/offapi/com/sun/star/form/validation/ValidatableBindableControlModel.idl new file mode 100644 index 000000000000..9b436b605efa --- /dev/null +++ b/offapi/com/sun/star/form/validation/ValidatableBindableControlModel.idl @@ -0,0 +1,79 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_ValidatableBindableControlModel_idl__ +#define __com_sun_star_form_validation_ValidatableBindableControlModel_idl__ + +#ifndef __com_sun_star_form_validation_ValidatableControlModel_idl__ +#include <com/sun/star/form/validation/ValidatableControlModel.idl> +#endif + +#ifndef __com_sun_star_form_binding_BindableControlModel_idl__ +#include <com/sun/star/form/binding/BindableControlModel.idl> +#endif +//============================================================================= + +module com { module sun { module star { module form { module validation { + +/** specifies a control model which supports both binding to an external value supplier, + and to an external validator. + + <p>There are two methods how the value which is represented by a control model + can interact with other components (well, except the trivial ones accessible + by using <type scope="com::sun::star::beans">XPropertySet</type>): + <ul><li>binding the value to an external component via <type scope="com::sun::star::form::binding">XBindableValue</type></li> + <li>validating the current value by an external component, via <type>XValidatable</type> and <type>XValidator</type></li> + </ul></p> + + <p>The <type>ValidatableBindableControlModel</type> services describes the interaction of these concepts + for control models which support both of them.</p> +*/ +service ValidatableBindableControlModel +{ + /** specifies support for validating the current value of the control + */ + service ValidatableControlModel; + + /** specifies support for binding the control value to an external component + + <p>If a value binding is established at the control model (by using + <member scope="com::sun::star::form::binding">XBindableValue::setValueBinding</member> with a non-<NULL/> + binding), this binding is analyzed for validation support. If it is present (read: if the + binding also supports the <type>XValidator</type> interface), the binding is also + established as validator, as if it has been passed to <member>XValidatable::setValidator</member>.<br/> + If, while this binding is active (in both its roles as value binding and validator), + an attempt is made to establish another validator, this is blocked with raising a + <type scope="com::sun::star::util">VetoException</type> upon calling <member>XValidatable::setValidator</member>.</p> + */ + service com::sun::star::form::binding::BindableControlModel; +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/ValidatableControlModel.idl b/offapi/com/sun/star/form/validation/ValidatableControlModel.idl new file mode 100644 index 000000000000..5ca51efdab1f --- /dev/null +++ b/offapi/com/sun/star/form/validation/ValidatableControlModel.idl @@ -0,0 +1,97 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_ValidatableControlModel_idl__ +#define __com_sun_star_form_validation_ValidatableControlModel_idl__ + +#ifndef __com_sun_star_form_FormControlModel_idl__ +#include <com/sun/star/form/FormControlModel.idl> +#endif + +#ifndef __com_sun_star_form_validation_XValidatableFormComponent_idl__ +#include <com/sun/star/form/validation/XValidatableFormComponent.idl> +#endif + +#ifndef __com_sun_star_form_validation_XValidityConstraintListener_idl__ +#include <com/sun/star/form/validation/XValidityConstraintListener.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module form { module validation { + +/** specifies the model of a form control which supports live validation of its + input. + + <p>Validatable control models support setting a validator with dynamic + validity constraints, and broadcasting changes in their value as well as the + validity of their value.</p> +*/ +service ValidatableControlModel +{ + /** specifies the basic functionality for a form control model + + <p>Via this service, validatable control models inherit the + <type scope="com::sun::star::util">XCloneable</type> interface.<br/> + If an validatable control model, at which a validator has been set (via + <member>XValidatable::setValidator</member>), is being cloned, then the + validator is also set at the clone. Effectively, this means that + both control model instances share the same validator instance.</p> + */ + service com::sun::star::form::FormControlModel; + + /** enables support for validating the value of the control model + + <p>Setting an retrieving the current validator of the control model is + possible via the <type>XValidatable</type> interface (which + <type>XValidatableFormComponent</type> is derived from).</p> + + <p>Easy access to the current value of the control, as well as it's validity + (relative to the active validator), is provided by the methods <member>XValidatableFormComponent::isValid</member> + and <member>XValidatableFormComponent::getCurrentValue</member>.</p> + + <p>Note that the type of the value provided by <member>XValidatableFormComponent::getCurrentValue</member> + is not specified here, but depends on the concrete control type.</p> + */ + interface XValidatableFormComponent; + + /** enables support for validators with dynamic validity constraints. + + <p>As soon as a validator is set via <member>XValidatable::setValidator</member>, the validatable + control model registers itself as listener. If the validity constraint of the validator + changes, the <type>ValidatableControlModel</type> re-validates it's current valid, and + broadcasts any resuling changes to all its <type>XFormComponentValidityListener</type>, if + necessary.</p> + */ + interface XValidityConstraintListener; +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl b/offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl new file mode 100644 index 000000000000..f28c054918b9 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl @@ -0,0 +1,63 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_XFormComponentValidityListener_idl__ +#define __com_sun_star_form_validation_XFormComponentValidityListener_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_lang_XEventListener_idl__ +#include <com/sun/star/lang/XEventListener.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module form { module validation { + +//============================================================================= + +/** is the listener interface to be notified of changes of a <type>XValidatableFormComponent</type> +*/ +interface XFormComponentValidityListener : com::sun::star::lang::XEventListener +{ + /** called when the validity and/or the value of the form component at which the listener + is registered changed. + + @param Source + The member <member scope="com::sun::star::lang">EventObject::Source</member> + represents the <type>XValidatableFormComponent</type> whose validity, value, or text changed. + */ + void componentValidityChanged( [in] com::sun::star::lang::EventObject Source ); +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/XValidatable.idl b/offapi/com/sun/star/form/validation/XValidatable.idl new file mode 100644 index 000000000000..aa7799dfff85 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidatable.idl @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_XValidatable_idl__ +#define __com_sun_star_form_validation_XValidatable_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_util_VetoException_idl__ +#include <com/sun/star/util/VetoException.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module form { module validation { + +interface XValidator; + +//============================================================================= + +/** specifies support for validating a component + + @see XValidator +*/ +interface XValidatable : com::sun::star::uno::XInterface +{ + /** sets an external instance which is able to validate the component + + <p>Any previously active validator will be revoked - there can be only one!</p> + + @param Validator + the new validator which is to be used by the component. May be <NULL/>, + in this case only the current validator is revoked. + + @throws <type scope="com::sun::star::util">VetoException</type> + if changing the validator is not allowed in the current component state + */ + void setValidator( [in] XValidator Validator ) + raises ( com::sun::star::util::VetoException ); + + /** retrieves the external instance which is currently used to validate the component + */ + XValidator + getValidator( ); +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/XValidatableFormComponent.idl b/offapi/com/sun/star/form/validation/XValidatableFormComponent.idl new file mode 100644 index 000000000000..eae3a9f48518 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidatableFormComponent.idl @@ -0,0 +1,126 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_XValidatableFormComponent_idl__ +#define __com_sun_star_form_validation_XValidatableFormComponent_idl__ + +#ifndef __com_sun_star_form_validation_XValidatable_idl__ +#include <com/sun/star/form/validation/XValidatable.idl> +#endif + +#ifndef __com_sun_star_lang_NoSupportException_idl__ +#include <com/sun/star/lang/NoSupportException.idl> +#endif + +#ifndef __com_sun_star_lang_NullPointerException_idl__ +#include <com/sun/star/lang/NullPointerException.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module form { module validation { + +interface XFormComponentValidityListener; + +//============================================================================= + +/** is a convenience interface for accessing several aspects of a form component + which supports validation. + + <p>A validatable form component has two aspects which other parties might + be interested in: + <ul> + <li>The pure validity flag: Whatever the user enters in the component, this is + either valid (relative to the active validator), or invalid.</li> + <li>The current value: Even if the validity flag does not change with the user + input (e.g. because the user replaces one invalid value with another invalid + value), observers might be interested in the current value, for example to + include it in a feedback message to the user.</li> + </ul> + </p> + + <p>An <type>XValidatableFormComponent</type> allows to easily access both of these aspects.</p> + + <p>Note that all of the information provided at this interface can also obtained by other means, + but much more inconviniently.</p> + + @see XValidatable + @see XValidator +*/ +interface XValidatableFormComponent : XValidatable +{ + /** determines whether the current value of the component passed the validity test + at the validator. + + <p>Calling this is equal to calling <member>XValidator::isValid</member> with + the current value (see <member>getCurrentValue</member>) of the component, where + the validator is obtained via <member>XValidatable::getValidator</member>.</p> + + <p>If no validator has been set (<member>XValidatable::setValidator</member>), this method + returns true.</p> + */ + boolean isValid(); + + /** retrieves the current value of the component. + + <p>The type of the current value, as well as it's semantics, depend on the service + implementing this interface.</p> + + <p>Again, this is a convenience method. For example, for a <type scope="com::sun::star::form::component">FormattedField</type>, + calling this method is equivalent to retrieving the + <member scope="com::sun::star::awt">UnoControlFormattedFieldModel::EffectiveValue</member>.</p> + + <p>If no validator has been set (<member>XValidatable::setValidator</member>), the value returned + here is defined by the service implementing this interface.</p> + */ + any getCurrentValue(); + + /** registers the given listener. + + <p><type>XFormComponentValidityListener</type>s are called whenever <em>any</em> of the aspects + of the validatable form component (the validity flag, or the value) changed.</p> + + @throws <type scope="com::sun::star::lang">NullPointerException</type> + if the given listener is <NULL/> + */ + void addFormComponentValidityListener( [in] XFormComponentValidityListener Listener ) + raises( com::sun::star::lang::NullPointerException ); + + /** registers the given listener. + + @throws <type scope="com::sun::star::lang">NullPointerException</type> + if the given listener is <NULL/> + */ + void removeFormComponentValidityListener( [in] XFormComponentValidityListener Listener ) + raises( com::sun::star::lang::NullPointerException ); +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/XValidator.idl b/offapi/com/sun/star/form/validation/XValidator.idl new file mode 100644 index 000000000000..03753ef90fbb --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidator.idl @@ -0,0 +1,107 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_XValidator_idl__ +#define __com_sun_star_form_validation_XValidator_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_lang_NullPointerException_idl__ +#include <com/sun/star/lang/NullPointerException.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module form { module validation { + +interface XValidityConstraintListener; + +//============================================================================= + +/** specifies a component able to validate (the content of) other components + + <p>Validators support simple validity checks and retrieving justifications for + invalidity.</p> + + <p>Validators may additionally support dynamic validity constraints. In such a case, + the validity of a given value may change, without the value changing itself.<br/> + To be notified about this, interested components should register as <type>XValidityConstraintListener</type>. + + @see XValidatable +*/ +interface XValidator : com::sun::star::uno::XInterface +{ + /** determines whether the given value is valid + + @param aValue + the value to check for validity + @return + <TRUE/> if and only if the value is considered valid. + */ + boolean isValid( [in] any Value ); + + /** retrieves a justification for the invalidity of the given value + + @param aValue + the value which has been recognized as being invalid + @return + a human-readable string, which explains why the given valus is considered invalid. + */ + string explainInvalid( [in] any Value ); + + /** registers the given validity listener. + + <p>Usually, an <type>XValidatable</type> instance will also add itself as validity listener, + as soon as the validator is introduced to it.</p> + + <p>Implementations which do not support dynamic validity contraints should simply ignore this + call.</p> + + @throws <type scope="com::sun::star::lang">NullPointerException</type> + if the given listener is <NULL/> + @see XValidityConstraintListener + */ + void addValidityConstraintListener( [in] XValidityConstraintListener Listener ) + raises( com::sun::star::lang::NullPointerException ); + + /** revokes the given validity listener + + @throws <type scope="com::sun::star::lang">NullPointerException</type> + if the given listener is <NULL/> + @see XValidityConstraintListener + */ + void removeValidityConstraintListener( [in] XValidityConstraintListener Listener ) + raises( com::sun::star::lang::NullPointerException ); +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/XValidityConstraintListener.idl b/offapi/com/sun/star/form/validation/XValidityConstraintListener.idl new file mode 100644 index 000000000000..593b230f6d52 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidityConstraintListener.idl @@ -0,0 +1,60 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_form_validation_XValidityConstraintListener_idl__ +#define __com_sun_star_form_validation_XValidityConstraintListener_idl__ + +#ifndef __com_sun_star_lang_XEventListener_idl__ +#include <com/sun/star/lang/XEventListener.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module form { module validation { + +//============================================================================= + +/** specifies an interface for listening for changes in the validity constraints + represented by an <type>XValidator</type>. +*/ +interface XValidityConstraintListener : com::sun::star::lang::XEventListener +{ + /** called when the validity constraint represented by an <type>XValidator</type>, + at which the listener is registered, changed. + + @param Source + The event source. The member <member scope="com::sun::star::lang">EventObject::Source</member> + represents the validator component whose validity constraint changed. + */ + void validityConstraintChanged( [in] com::sun::star::lang::EventObject Source ); +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/offapi/com/sun/star/form/validation/makefile.mk b/offapi/com/sun/star/form/validation/makefile.mk new file mode 100644 index 000000000000..752438c94f2c --- /dev/null +++ b/offapi/com/sun/star/form/validation/makefile.mk @@ -0,0 +1,53 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/..$/..$/..$/.. + +PRJNAME=offapi + +TARGET=cssfvalidation +PACKAGE=com$/sun$/star$/form$/validation + +# --- Settings ----------------------------------------------------- +.INCLUDE : $(PRJ)$/util$/makefile.pmk + +# ------------------------------------------------------------------------ + +IDLFILES=\ + XValidatable.idl \ + XValidator.idl \ + XValidityConstraintListener.idl \ + XValidatableFormComponent.idl \ + XFormComponentValidityListener.idl \ + \ + ValidatableControlModel.idl \ + ValidatableBindableControlModel.idl \ + +# ------------------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : $(PRJ)$/util$/target.pmk |