
br.com.objectos.way.code.AccessInfo Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2014 Objectos, Fábrica de Software LTDA.
*
* 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 br.com.objectos.way.code;
import java.util.Optional;
import java.util.Set;
import javax.lang.model.element.Modifier;
/**
* @author [email protected] (Marcio Endo)
*/
public enum AccessInfo {
PUBLIC,
PROTECTED,
DEFAULT {
@Override
Optional toJdk() {
return Optional.empty();
}
@Override
String declaration() {
return "";
}
},
PRIVATE;
public static Optional fromJdk(Set modifiers) {
return modifiers.stream()
.map(m -> {
try {
AccessInfo accessInfo = AccessInfo.valueOf(m.name());
return Optional.of(accessInfo);
} catch (IllegalArgumentException e) {
return Optional. empty();
}
})
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
}
@Override
public String toString() {
return name().toLowerCase();
}
public Modifier[] modifiers() {
return toJdk()
.map(m -> new Modifier[] { m })
.orElse(new Modifier[] {});
}
public void writeTo(StringBuilder builder) {
builder.append(toString());
}
Optional toJdk() {
Modifier modifier = Modifier.valueOf(name());
return Optional.of(modifier);
}
String declaration() {
return name().toLowerCase() + " ";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy