/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ module com { module sun { module star { module form { module validation { interface XValidityConstraintListener; /** specifies a component able to validate (the content of) other components

Validators support simple validity checks and retrieving justifications for invalidity.

Validators may additionally support dynamic validity constraints. In such a case, the validity of a given value may change, without the value changing itself.
To be notified about this, interested components should register as XValidityConstraintListener. @see XValidatable */ interface XValidator : com::sun::star::uno::XInterface { /** determines whether the given value is valid @param Value 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 Value the value which has been recognized as being invalid @return a human-readable string, which explains why the given value is considered invalid. */ string explainInvalid( [in] any Value ); /** registers the given validity listener.

Usually, an XValidatable instance will also add itself as validity listener, as soon as the validator is introduced to it.

Implementations which do not support dynamic validity constraints should simply ignore this call.

@throws com::sun::star::lang::NullPointerException 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 com::sun::star::lang::NullPointerException if the given listener is `NULL` @see XValidityConstraintListener */ void removeValidityConstraintListener( [in] XValidityConstraintListener Listener ) raises( com::sun::star::lang::NullPointerException ); }; }; }; }; }; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */