• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

link-intersystems / lis-commons / #320

22 May 2024 05:03AM UTC coverage: 90.326% (+0.1%) from 90.223%
#320

push

renelink
Added documentation and refactored property predicates.

18 of 18 new or added lines in 5 files covered. (100.0%)

11 existing lines in 2 files now uncovered.

7712 of 8538 relevant lines covered (90.33%)

0.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.75
/lis-commons-beans/src/main/java/com/link_intersystems/beans/AbstractBean.java
1
package com.link_intersystems.beans;
2

3
import java.text.MessageFormat;
4
import java.util.IdentityHashMap;
5
import java.util.function.Function;
6
import java.util.function.Predicate;
7

8
import static java.util.Objects.requireNonNull;
9

10
/**
11
 * @author René Link {@literal <rene.link@link-intersystems.com>}
12
 */
13
public abstract class AbstractBean<T> implements Bean<T> {
14

15
    private BeanClass<T> beanClass;
16
    private T bean;
17

18
    protected AbstractBean(BeanClass<T> beanClass, T bean) {
1✔
19
        this.beanClass = requireNonNull(beanClass);
1✔
20
        this.bean = requireNonNull(bean);
1✔
21
    }
1✔
22

23
    @Override
24
    public BeanClass<T> getBeanClass() {
25
        return beanClass;
1✔
26
    }
27

28
    @Override
29
    public T getBeanObject() {
30
        return bean;
1✔
31
    }
32

33
    @Override
34
    public void removeListener(Object listener) {
35
        if (listener == null) {
1✔
UNCOV
36
            return;
×
37
        }
38

39
        BeanEvent applicableBeanEvent = getApplicableBeanEvent(listener);
1✔
40

41
        if (applicableBeanEvent == null) {
1✔
42
            String msg = MessageFormat.format("{0} can not handle listener {1}", getBeanClass(), listener.getClass());
1✔
43
            throw new UnsupportedOperationException(msg);
1✔
44
        }
45

46
        applicableBeanEvent.removeListener(listener);
1✔
47
    }
1✔
48

49
    @Override
50
    public void addListener(Object listener) {
51
        if (listener == null) {
1✔
UNCOV
52
            return;
×
53
        }
54

55
        BeanEvent applicableBeanEvent = getApplicableBeanEvent(listener);
1✔
56

57
        if (applicableBeanEvent == null) {
1✔
58
            String msg = MessageFormat.format("{0} can not handle listener {1}", getBeanClass(), listener.getClass());
1✔
59
            throw new UnsupportedOperationException(msg);
1✔
60
        }
61

62
        applicableBeanEvent.addListener(listener);
1✔
63
    }
1✔
64

65
    /**
66
     * Override to support {@link BeanEvent}s.
67
     */
68
    protected BeanEvent getApplicableBeanEvent(Object listener) {
69
        BeanClass<T> beanClass = getBeanClass();
1✔
70

71
        BeanEventTypeList beanEventTypes = beanClass.getBeanEventTypes();
1✔
72

73
        BeanEvent applicableBeanEvent = null;
1✔
74
        for (BeanEventType beanEventType : beanEventTypes) {
1✔
75
            if (beanEventType.isApplicable(listener)) {
1✔
76
                T beanObject = getBeanObject();
1✔
77
                applicableBeanEvent = beanEventType.newBeanEvent(beanObject);
1✔
78
                break;
1✔
79
            }
80
        }
1✔
81
        return applicableBeanEvent;
1✔
82
    }
83
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc