/** * Copyright © 2016-2017 The Thingsboard Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.thingsboard.server.dao.model; import java.util.UUID; import org.thingsboard.server.common.data.id.DeviceCredentialsId; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentialsType; import org.thingsboard.server.dao.model.type.DeviceCredentialsTypeCodec; import com.datastax.driver.core.utils.UUIDs; import com.datastax.driver.mapping.annotations.Column; import com.datastax.driver.mapping.annotations.PartitionKey; import com.datastax.driver.mapping.annotations.Table; import com.datastax.driver.mapping.annotations.Transient; @Table(name = ModelConstants.DEVICE_CREDENTIALS_COLUMN_FAMILY_NAME) public final class DeviceCredentialsEntity implements BaseEntity<DeviceCredentials> { @Transient private static final long serialVersionUID = -2667310560260623272L; @PartitionKey(value = 0) @Column(name = ModelConstants.ID_PROPERTY) private UUID id; @Column(name = ModelConstants.DEVICE_CREDENTIALS_DEVICE_ID_PROPERTY) private UUID deviceId; @Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_TYPE_PROPERTY, codec = DeviceCredentialsTypeCodec.class) private DeviceCredentialsType credentialsType; @Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_ID_PROPERTY) private String credentialsId; @Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_VALUE_PROPERTY) private String credentialsValue; public DeviceCredentialsEntity() { super(); } public DeviceCredentialsEntity(DeviceCredentials deviceCredentials) { if (deviceCredentials.getId() != null) { this.id = deviceCredentials.getId().getId(); } if (deviceCredentials.getDeviceId() != null) { this.deviceId = deviceCredentials.getDeviceId().getId(); } this.credentialsType = deviceCredentials.getCredentialsType(); this.credentialsId = deviceCredentials.getCredentialsId(); this.credentialsValue = deviceCredentials.getCredentialsValue(); } public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } public UUID getDeviceId() { return deviceId; } public void setDeviceId(UUID deviceId) { this.deviceId = deviceId; } public DeviceCredentialsType getCredentialsType() { return credentialsType; } public void setCredentialsType(DeviceCredentialsType credentialsType) { this.credentialsType = credentialsType; } public String getCredentialsId() { return credentialsId; } public void setCredentialsId(String credentialsId) { this.credentialsId = credentialsId; } public String getCredentialsValue() { return credentialsValue; } public void setCredentialsValue(String credentialsValue) { this.credentialsValue = credentialsValue; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((credentialsId == null) ? 0 : credentialsId.hashCode()); result = prime * result + ((credentialsType == null) ? 0 : credentialsType.hashCode()); result = prime * result + ((credentialsValue == null) ? 0 : credentialsValue.hashCode()); result = prime * result + ((deviceId == null) ? 0 : deviceId.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; DeviceCredentialsEntity other = (DeviceCredentialsEntity) obj; if (credentialsId == null) { if (other.credentialsId != null) return false; } else if (!credentialsId.equals(other.credentialsId)) return false; if (credentialsType != other.credentialsType) return false; if (credentialsValue == null) { if (other.credentialsValue != null) return false; } else if (!credentialsValue.equals(other.credentialsValue)) return false; if (deviceId == null) { if (other.deviceId != null) return false; } else if (!deviceId.equals(other.deviceId)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("DeviceCredentialsEntity [id="); builder.append(id); builder.append(", deviceId="); builder.append(deviceId); builder.append(", credentialsType="); builder.append(credentialsType); builder.append(", credentialsId="); builder.append(credentialsId); builder.append(", credentialsValue="); builder.append(credentialsValue); builder.append("]"); return builder.toString(); } @Override public DeviceCredentials toData() { DeviceCredentials deviceCredentials = new DeviceCredentials(new DeviceCredentialsId(id)); deviceCredentials.setCreatedTime(UUIDs.unixTimestamp(id)); if (deviceId != null) { deviceCredentials.setDeviceId(new DeviceId(deviceId)); } deviceCredentials.setCredentialsType(credentialsType); deviceCredentials.setCredentialsId(credentialsId); deviceCredentials.setCredentialsValue(credentialsValue); return deviceCredentials; } }