| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.zipcodewilmington.generic.group;
-
- import com.sun.javafx.tools.packager.Param;
- import com.zipcodewilmington.generic.identifiables.IdentifiableInterface;
-
- import java.io.Serializable;
- import java.lang.reflect.Field;
- import java.lang.reflect.ParameterizedType;
- import java.lang.reflect.Type;
- import java.util.*;
- import java.util.function.Predicate;
- import java.util.stream.Collectors;
-
- /**
- * @author leon on 06/12/2018.
- */
- public class Group<TypeOfId extends Serializable,
- TypeOfEntity extends IdentifiableInterface<TypeOfId>> extends AbstractGroup<TypeOfId, TypeOfEntity> {
-
- public Group(){
- list = new ArrayList<>();
- }
-
- @Override
- public Integer count() {
- return list.size();
- }
-
- @Override
- public void insert(IdentifiableInterface object) {
- list.add((TypeOfEntity) object);
- }
-
- @Override
- public void delete(IdentifiableInterface object) {
- list.remove(object);
- }
-
- @Override
- public void delete(Serializable serializable) {
- list.removeIf(e -> e.getIdentity().equals(serializable));
- }
-
- @Override
- public Boolean has(IdentifiableInterface object) {
- return list.contains(object);
- }
-
- @Override
- public Boolean has(Serializable serializable) {
- for (IdentifiableInterface i : list)
- if (i.getIdentity().equals(serializable))
- return true;
- return false;
- }
-
- @Override
- public List filter(Predicate predicate) {
- return (List) list.stream().filter(predicate).collect(Collectors.toList());
- }
-
- @Override
- public Class<? extends TypeOfId> getIdentityType() {
- Class clazz = getClass(); //class com.zipcodewilmington.generic.group.Group
- Type type = clazz.getGenericSuperclass(); //com.zipcodewilmington.generic.group.AbstractGroup<TypeOfId, TypeOfEntity>
- ParameterizedType pt = (ParameterizedType) type; //com.zipcodewilmington.generic.group.AbstractGroup<TypeOfId, TypeOfEntity>
- Type[] types = pt.getActualTypeArguments(); //[Ljava.lang.reflect.Type;@6073f712
- Type type1 = types[0]; //TypeOfId
- return (Class) type1.getClass();
- }
-
- @Override
- public Class<? extends TypeOfEntity> getIdentifiableType() {
- Class clazz = getClass(); //class com.zipcodewilmington.generic.group.Group
- Type type = clazz.getGenericSuperclass(); //com.zipcodewilmington.generic.group.AbstractGroup<TypeOfId, TypeOfEntity>
- ParameterizedType pt = (ParameterizedType) type; //com.zipcodewilmington.generic.group.AbstractGroup<TypeOfId, TypeOfEntity>
- Type[] types = pt.getActualTypeArguments(); //[Ljava.lang.reflect.Type;@6073f712
- Type type1 = types[1]; //TypeOfEntity
- return (Class) type1.getClass();
- }
-
- }
|