Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
Below is my java enum.
I want to convert it to Swift enum.
Can you please help me to migrate?
package com.lifeplus.Pojo.Enum;
public enum GattServiceEnum {
CURR_TIME_SERVICE("00001805-0000-1000-8000-00805f9b34fb", "current_time"),
DEVICE_INFORMATION_SERVICE("0000180a-0000-1000-8000-00805f9b34fb", "device_information"),
PULSE_OXY_SERVICE("00001822-0000-1000-8000-00805f9b34fb", "pulse_oximeter"),
CUSTOM_SERVICE("4C505732-5F43-5553-544F-4D5F53525600", "Custom Service");
private final String _id;
private final String _desc;
GattServiceEnum(String pId, String pDesc) {
_id = pId;
_desc = pDesc;
}
public String getId() {
return _id;
}
public String getDesc() {
return _desc;
}
}
Plaese help me to convert this to Java.
There is no need to use an enum. You can simply use a struct
public struct GattService {
public let id: String
public let desc: String
// You can optionally provide the get functions, but it is simpler just to access the properties directly
public func getId() -> String {
return id
}
public func getDesc() -> String {
return desc
}
}
try thisŲ Hopefully it will be useful for you:
public enum GattServiceEnum {
case myNameCase(id: String, desc: String)
case anotherCase
case onlyIdCase(id: String)
case onlyDescCase(desc: String)
public func getId() -> String? {
switch self {
case .myNameCase(let id, _),
.onlyIdCase(let id):
return id
case .anotherCase, .onlyDescCase:
return nil
}
}
public func getDesc() -> String? {
switch self {
case .myNameCase(_, let desc),
.onlyDescCase(let desc):
return desc
case .anotherCase, .onlyIdCase:
return nil
}
}
}
// create
let myEnumObject = GattServiceEnum.myNameCase(id: "123", desc: "hi")
// get id
print(myEnumObject.getId())
// get desc
print(myEnumObject.getDesc())
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
I have a Java ENUM where I store different statuses:
public enum BusinessCustomersStatus {
A("active", "Active"),
O("onboarding", "Onboarding"),
NV("not_verified", "Not Verified"),
V("verified", "Verified"),
S("suspended", "Suspended"),
I("inactive", "Inactive");
#Getter
private String shortName;
#JsonValue
#Getter
private String fullName;
BusinessCustomersStatus(String shortName, String fullName) {
this.shortName = shortName;
this.fullName = fullName;
}
// Use the fromStatus method as #JsonCreator
#JsonCreator
public static BusinessCustomersStatus fromStatus(String statusText) {
for (BusinessCustomersStatus status : values()) {
if (status.getShortName().equalsIgnoreCase(statusText)) {
return status;
}
}
throw new UnsupportedOperationException(String.format("Unknown status: '%s'", statusText));
}
}
Full code: https://github.com/rcbandit111/Search_specification_POC/blob/main/src/main/java/org/merchant/database/service/businesscustomers/BusinessCustomersStatus.java
The code works well when I want to get the list of items into pages for the value fullName because I use #JsonValue annotation.
I have a case where I need to get the shortValue for this code:
return businessCustomersService.findById(id).map( businessCustomers -> businessCustomersMapper.toFullDTO(businessCustomers));
source: https://github.com/rcbandit111/Search_specification_POC/blob/316c97aa5dc34488771ee11fb0dcf6dc1e4303da/src/main/java/org/merchant/service/businesscustomers/BusinessCustomersRestServiceImpl.java#L77
But I get fullValue. Do you know for single row how I can map the shortValue?
Yo can use this :
public enum decizion{
YES("Y"), NO("N"), OTHER;
String key;
decizion(String key) { this.key = key; }
//default constructor, used only for the OTHER case,
//because OTHER doesn't need a key to be associated with.
decizion() { }
static decizion getValue(String x) {
if ("Y".equals(x)) { return YES; }
else if ("N".equals(x)) { return NO; }
else if (x == null) { return OTHER; }
else throw new IllegalArgumentException();
}
}
Then, in the method, you can just do:
public static decizion yourDecizion() {
...
String key = ...
return decizion.getValue(key);
}
This question already has answers here:
Generating Enums Dynamically
(4 answers)
Closed 2 years ago.
I'm trying to create an Enumeration in Java. I did a code I created a comboBox with the enum values and it was correct. The problem is that in that case I knew the values I wanted ComboBox to have.
Now I'm trying to create a ComboBox in SceneBuilder with an object characteristic.
I receive from a file a lot of tasks and all of them have it own reference. I want to create an enum with all the references with the objective that user chose one task from the reference in the ComboBox.
Here is the Task code in portuguese (referencia means reference):
//This is a constructor of Tarefa (task):
public Tarefa(String referencia, String designacao, String descricaoInformal, String descricaoTecnica, int duracaoEstimada, Double custoEstimado) {
this.referencia = referencia;
this.designacao = designacao;
this.descricaoInformal = descricaoInformal;
this.descricaoTecnica = descricaoTecnica;
this.duracaoEstimada = duracaoEstimada;
this.custoEstimado = custoEstimado;
}
public String getReferencia() {
return referencia;
}
I was creating other JavaClass creating something like this:
public enum Prioridade {
BAIXA {
public String toString() {
return "Baixa";
}
},
ABAIXO_NORMAL {
public String toString() {
return "Abaixo do Normal";
}
},
NORMAL {
public String toString() {
return "Normal";
}
},
ACIMA_NORMAL {
public String toString() {
return "Acima do Normal";
}
},
ELEVADO {
public String toString() {
return "Elevado";
}
},
TEMPO_REAL {
public String toString() {
return "Tempo Real";
}
};
}
But in that case I knew the values I wanted enum to have.
How can I create an Enum not knowing from the beggining the values it will have? I only know the type: String.
You can use static method of enum valueOf(String str)
For example Prioridade.valueOf("ACIMA_NORMAL")
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
{"userId":"vincent","favTracks":{"favourite":"15","unFavourite":"121"}}
What can be the Java object for the above JSON String?
It really depends on how you want to map it. If you're using Jackson, for example, with the default mapping settings, your classes could look something like:
class MyObject {
private String userId;
private FavTracks favTracks;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public FavTracks getFavTracks() {
return favTracks;
}
public void setFavTracks(FavTracks favTracks) {
this.favTracks = favTracks;
}
}
class FavTracks {
private String favourite;
private String unFavourite;
public String getFavourite() {
return favourite;
}
public void setFavourite(String favourite) {
this.favourite = favourite;
}
public String getUnFavourite() {
return unFavourite;
}
public void setUnFavourite(String unFavourite) {
this.unFavourite = unFavourite;
}
}
One remark: in your current example, the favourite and unFavourite properties are of a string type. Maybe a numeric type is more suitable?
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 8 years ago.
Improve this question
E.g.
[{
'name': 'Foo',
'distance': 2
},{
'name': 'Bar'
}]
This will parsed into a list of objects of this class:
class City {
public String name;
public int distance;
}
However for Bar the city object will not have the distance attribute. Can I check for types like I would check for objects? Like:
if(city.distance)
How can I check if distance is set?
Gson gson = new Gson();
City city = gson.fromJson(json, City.class);
Custom parse classes are allowed with GSON. Just use Integer instead of int and check for null value.
Remember that you have to create a City class with a void constructor:
public class City {
public Integer distance;
public String name;
public City() {/*void constructor*/}
public Integer getDistance() {
return distance;
}
public void setDistance(Integer distance) {
this.distance = distance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Check for null using city.getDistance()==null
You can use an Integer instead of an int, and check if it is null. The same can be made for other atributes, use a class instead of a raw type.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I have a variable that contains a return value.
Value:
Team ID:
111111
Founded:
Feb 13, 2014 By USER
Dispute Percentage:" 0%
Reputation: -
What I am looking to keep is stickly (11111) and save it back to the value teamID. How can I manipulate the return string to only store that value and delete the rest.
If I understand what you want, you can do something like this
String value = "Team ID:\n" + "19288568\n"
+ "Founded:\n" + "Feb 13, 2014 By MLGQA\n"
+ "\n" + "Dispute Percentage: 0%\n"
+ "Reputation: -\n";
System.out.println(value.split("\n")[1]);
Outputs
19288568
Since your returned String seems somewhat complex to me, I would suggest returning a custom object (a bean) containing the information you want, each with its own field.
By doing that, you will have a quick access to any of the fields you want, by simply calling the appropriate getter method on the returned object.
For example:
public class MyContainer {
private int teamID;
private String foundationDate;
private String foundator;
private int disputePercentage;
private int reputation;
public MyContainer() {
// Constructor code.
}
public int getTeamID() {
return teamID;
}
public void setTeamID(int teamID) {
this.teamID = teamID;
}
public String getFoundationDate() {
return foundationDate;
}
public void setFoundationDate(String foundationDate) {
this.foundationDate = foundationDate;
}
public String getFoundator() {
return foundator;
}
public void setFoundator(String foundator) {
this.foundator = foundator;
}
public int getDisputePercentage() {
return disputePercentage;
}
public void setDisputePercentage(int disputePercentage) {
this.disputePercentage = disputePercentage;
}
public int getReputation() {
return reputation;
}
public void setReputation(int reputation) {
this.reputation = reputation;
}
}
And your original returning method would look to something like this:
public MyContainer returningMethod(Object args) {
// Your code.
MyContainer bean = new MyContainer();
// Fill the container.
return bean;
}
I do not know the exact types of data you use, so feel free to adjust this example for your needs!