View Javadoc
1   package fr.ifremer.tutti.persistence.entities.referential;
2   
3   /*
4    * #%L
5    * Tutti :: Persistence
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2014 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  
28  import com.google.common.base.Function;
29  import com.google.common.base.Preconditions;
30  import com.google.common.base.Predicate;
31  
32  public class Gears extends AbstractGears {
33  
34  
35  //    public static Map<String, Gear> splitByName(List<Gear> gears) {
36  //        return Maps.uniqueIndex(gears, GET_NAME);
37  //    }
38  
39      public static final Predicate<Gear> IS_FISHING_GEAR = input -> !input.isScientificGear();
40  
41      public static final Predicate<Gear> IS_SCIENTIFIC_GEAR = Gear::isScientificGear;
42  
43      public static final Predicate<Gear> IS_TEMPORARY = Gears::isTemporary;
44  
45      public static final Function<Gear, String> GET_NAME = Gear::getName;
46  
47      /**
48       * Is the given {@code gear} a temporary data ?
49       *
50       * @param gear gear to test
51       * @return {@code true} if the given {@code gear} is temporary
52       * @since 3.8
53       */
54      public static boolean isTemporary(Gear gear) {
55  
56          Preconditions.checkNotNull(gear);
57          Preconditions.checkNotNull(gear.getId());
58  
59          return TuttiReferentialEntities.isStatusTemporary(gear) && isTemporaryId(gear.getIdAsInt());
60  
61      }
62  
63      /**
64       * Is the given {@code id} is a gear temporary id ?
65       *
66       * @param id id to test
67       * @return {@code true} if the id is a gear pecies temporary id
68       * @since 3.14
69       */
70      public static boolean isTemporaryId(Integer id) {
71  
72          Preconditions.checkNotNull(id);
73          return id < 0;
74  
75      }
76  
77  }