com.geotab.model.entity.source.Source Maven / Gradle / Ivy
/*
*
* 2020 Copyright (C) Geotab Inc. All rights reserved.
*/
package com.geotab.model.entity.source;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.geotab.model.entity.NameEntity;
import com.geotab.model.serialization.SourceDeserializer;
import com.geotab.model.serialization.SourceSerializer;
import com.geotab.model.serialization.SystemEntitySerializationAware;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* The source is the underlying producer of the engine data.
*
* The source can be one of the following:
*
* -
* {@link SourceBrp}
*
* -
* {@link SourceBrpObsolete}
*
* -
* {@link SourceGmccc}
*
* -
* {@link SourceGo}
*
* -
* {@link SourceGoObsolete}
*
* -
* {@link SourceJ1708}
*
* -
* {@link SourceJ1708Obsolete}
*
* -
* {@link SourceJ1939}
*
* -
* {@link SourceJ1939Obsolete}
*
* -
* {@link SourceLegacy}
*
* -
* {@link SourceLegacyObsolete}
*
* -
* {@link SourceObd}
*
* -
* {@link SourceObdObsolete}
*
* -
* {@link SourceObdSa}
*
* -
* {@link SourceObdSaObsolete}
*
* -
* {@link SourceProprietary}
*
* -
* {@link SourceProprietaryObsolete}
*
* -
* {@link SourceSystem}
*
* -
* {@link SourceSystemObsolete}
*
* -
* {@link SourceThirdParty}
*
* -
* {@link SourceThirdPartyObsolete}
*
*
*/
@NoArgsConstructor
@Getter
@Setter
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@JsonDeserialize(using = SourceDeserializer.class)
@JsonSerialize(using = SourceSerializer.class)
public class Source extends NameEntity implements SystemEntitySerializationAware {
@Builder
public Source(String id, String name) {
super(id, name);
}
/**
* Returns true if the class is a system entity, false otherwise.
*
* @return true if the entity is a system entity; otherwise, false.
*/
@JsonIgnore
@Override
public boolean isSystemEntity() {
return true;
}
}