001package org.intellimate.izou.sdk.frameworks.music.player; 002 003import java.util.Optional; 004 005/** 006 * this class represents a symbolic volume (int from 0(=silent) to 100(=loudest) or -1 for mute) 007 * @author LeanderK 008 * @version 1.0 009 */ 010public class Volume { 011 private final int volume; 012 013 private Volume(int volume) { 014 this.volume = volume; 015 } 016 017 /** 018 * returns the volume 019 * @return the volume 020 */ 021 public int getVolume() { 022 return volume; 023 } 024 025 public static Optional<Volume> createVolume(int volume) { 026 if ((volume >= 0 && volume <= 100) || volume == -1) { 027 return Optional.of(new Volume(volume)); 028 } else { 029 return Optional.empty(); 030 } 031 } 032 033 @Override 034 public boolean equals(Object o) { 035 if (this == o) return true; 036 if (!(o instanceof Volume)) return false; 037 038 Volume volume1 = (Volume) o; 039 040 return volume == volume1.volume; 041 042 } 043 044 @Override 045 public int hashCode() { 046 return volume; 047 } 048}