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 }