summaryrefslogtreecommitdiffstats
path: root/component/src/main/java/com/yahoo/component/Component.java
blob: 3fd98e725992e8e678ccb2ba9b8e3661bc6c3606 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.component;


/**
 * A named, versioned, identifiable component.
 * <p>
 * Components can by default be ordered by their id order. Their identity is defined by the id.
 * Prefer extending AbstractComponent instead of implementing this interface directly.
 *
 * @author bratseth
 */
public interface Component extends Comparable<Component> {

    /** Initializes this. Always called from a constructor or the framework. Do not call. */
    void initId(ComponentId id);

    /** Returns the id of this component */
    ComponentId getId();

}