OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

Rev 17 | Rev 132 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
17 ilm 1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2011 OpenConcerto, by ILM Informatique. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of the GNU General Public License Version 3
7
 * only ("GPL"). You may not use this file except in compliance with the License. You can obtain a
8
 * copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific
9
 * language governing permissions and limitations under the License.
10
 *
11
 * When distributing the software, include this License Header Notice in each file.
12
 */
13
 
14
 package org.openconcerto.utils.cc;
15
 
16
public abstract class Transformer<E, T> implements ITransformer<E, T>, IClosure<E>, org.apache.commons.collections.Transformer {
17
 
67 ilm 18
    private static final ITransformer<Object, Object> nopTransf = new ITransformer<Object, Object>() {
19
        @Override
20
        public Object transformChecked(Object input) {
21
            return input;
22
        }
23
    };
24
 
25
    @SuppressWarnings("unchecked")
17 ilm 26
    public static final <N> ITransformer<N, N> nopTransformer() {
67 ilm 27
        return (ITransformer<N, N>) nopTransf;
17 ilm 28
    }
29
 
30
    @SuppressWarnings("unchecked")
31
    public final Object transform(Object input) {
32
        return this.transformChecked((E) input);
33
    }
34
 
35
    public abstract T transformChecked(E input);
36
 
37
    public final void executeChecked(E input) {
38
        this.transformChecked(input);
39
    }
40
}