@Contract("null, null, _, _ -> fail")
private static void loadMH(GeneratorAdapter adapter, Type reflectorClass, int flags, int mhIndex) {
if((flags & Magic.REFLECTOR_METHOD_USE_METHODHANDLE) == 0) return;
/* Load MethodHandle field */
adapter.loadThis();
adapter.getField(notNull(reflectorClass, "Reflector class shouldn't be null!"), MHF, MH_ARRAY);
/* Load index */
if(mhIndex >= 0 && mhIndex <= 5)
/* ICONST_x offset is 3, iow ICONST_0 = 3, ICONST_1 = 4 */
adapter.visitInsn(ICONST_0 + mhIndex);
else
adapter.visitIntInsn(BIPUSH, mhIndex);
/* Load MethodHandle from array */
adapter.visitInsn(AALOAD);
}
java类org.jetbrains.annotations.Contract的实例源码
MethodGenerator.java 文件源码
项目:Shuriken
阅读 35
收藏 0
点赞 0
评论 0
ImpexPsiUtils.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 25
收藏 0
点赞 0
评论 0
@Nullable
@Contract(pure = true)
public static boolean prevElementIsUserRightsMacros(@NotNull final PsiElement element) {
Validate.notNull(element);
final Class[] skipClasses = {ImpexValueLine.class, PsiComment.class, PsiWhiteSpace.class};
PsiElement prevElement = PsiTreeUtil.skipSiblingsBackward(element, skipClasses);
while (null != prevElement) {
if (isHeaderLine(prevElement)) {
return false;
}
if (isUserRightsMacros(prevElement)) {
return true;
}
prevElement = PsiTreeUtil.skipSiblingsBackward(prevElement, skipClasses);
}
return false;
}
ImpexHeaderItemTypeAttributeNameCompletionProvider.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 27
收藏 0
点赞 0
评论 0
@Nullable
@Contract("null -> null")
protected ImpexHeaderTypeName getHeaderTypeNamePsiElementOfAttribute(@Nullable final PsiElement headerAttributePsiElement) {
if (null == headerAttributePsiElement || null == headerAttributePsiElement.getNode()) {
return null;
}
final ImpexHeaderLine impexHeaderLine = PsiTreeUtil.getParentOfType(
headerAttributePsiElement,
ImpexHeaderLine.class
);
if (null == impexHeaderLine) {
return null;
}
final ImpexFullHeaderType impexFullHeaderType = impexHeaderLine.getFullHeaderType();
return null == impexFullHeaderType ? null : impexFullHeaderType.getHeaderTypeName();
}
ImpexPsiUtils.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 33
收藏 0
点赞 0
评论 0
@Nullable
@Contract(pure = true)
public static boolean nextElementIsHeaderLine(@NotNull final PsiElement element) {
Validate.notNull(element);
PsiElement nextSibling = element.getNextSibling();
while (null != nextSibling) {
if (isImpexValueLine(nextSibling)) {
return false;
}
if (isUserRightsMacros(nextSibling)) {
return false;
}
if (isHeaderLine(nextSibling)) {
return true;
}
nextSibling = nextSibling.getNextSibling();
}
return true;
}
ImpexPsiUtils.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 27
收藏 0
点赞 0
评论 0
@Nullable
@Contract(pure = true)
public static ImpexValueGroup skipAllExceptLineBreaksAndGetImpexValueGroup(
@NotNull final PsiElement psiElement
) {
Validate.notNull(psiElement);
if (isLineBreak(psiElement.getPrevSibling())) {
return null;
}
PsiElement prevSibling = psiElement.getPrevSibling();
while (!isImpexValueLine(prevSibling)) {
if (null == prevSibling || isLineBreak(prevSibling)) {
return null;
}
prevSibling = prevSibling.getPrevSibling();
}
if (!isImpexValueLine(prevSibling)) {
return null;
}
return PsiTreeUtil.getParentOfType(PsiTreeUtil.lastChild(prevSibling), ImpexValueGroup.class);
}
MyJavaPostfixTemplatesUtils.java 文件源码
项目:intellij-postfix-templates
阅读 27
收藏 0
点赞 0
评论 0
@Contract("null -> false")
public static boolean isDecimalNumber(@Nullable PsiType type) {
if (type == null) {
return false;
}
return NUMERIC_TYPES.contains(type) || NUMERIC_TYPES.contains(PsiPrimitiveType.getUnboxedType(type));
}
Pair.java 文件源码
项目:strictfp-back-end
阅读 27
收藏 0
点赞 0
评论 0
@Contract(pure = true)
@NotNull
@NonNls
public static String[] convert(Pair... origin) {
String[] ret = new String[origin.length];
for (int i = 0; i < ret.length; ++i) ret[i] = origin[i].getCombined();
return ret;
}
ClassWrapper.java 文件源码
项目:Shuriken
阅读 40
收藏 0
点赞 0
评论 0
/**
* Get class field
*
* @param fieldName Field's name
* @param type Field's type class
* @param <V> Field's type
* @return {@link FieldWrapper} object or empty, if field wasn't found
*/
@Contract("null, null -> fail")
@SuppressWarnings("unchecked")
public <V> Optional<FieldWrapper<V>> getField(String fieldName, Class<V> type) {
/* Check arguments */
if(fieldName == null) throw new IllegalStateException("Field name shouldn't be null!");
if(type == null) throw new IllegalStateException("Field type shouldn't be null!");
/* Try to find cached field */
FieldInfo fieldInfo = new FieldInfo(fieldName, type);
/* Get field */
Integer found = FIELD_INDEX.get(fieldInfo);
Field[] field = new Field[] { found != null ? FIELD_CACHE.get(found) : null };
field[0] = field[0] != null ? field[0] : findDeclaredField(fieldName, type);
if(field[0] == null) return Optional.empty();
/* Wrap field */
return Optional.of((FieldWrapper<V>)FIELDWRAPPER_CACHE.computeIfAbsent(found,
k -> MethodHandleFieldWrapper.of(this, field[0], type)));
}
ImpexPsiUtils.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 28
收藏 0
点赞 0
评论 0
@Nullable
@Contract(pure = true)
public static PsiElement getHeaderParametersSeparatorFromHeaderLineByNumber(
final int columnNumber,
@NotNull final ImpexHeaderLine impexHeaderLine
) {
Validate.isTrue(columnNumber >= 0);
Validate.notNull(impexHeaderLine);
final List<PsiElement> parameterSeparators = CommonPsiUtils.findChildrenByIElementType(
impexHeaderLine, ImpexTypes.PARAMETERS_SEPARATOR
);
if (columnNumber >= parameterSeparators.size()) {
return null;
}
return parameterSeparators.get(columnNumber);
}
Validate.java 文件源码
项目:Shuriken
阅读 34
收藏 0
点赞 0
评论 0
/**
* Check fields availability in class agains info defined in
* {@link FieldDescriptor} objects
*
* @param clazz Class to perform check on
* @param fields {@link FieldDescriptor} objects
*/
@Contract("null, _ -> fail")
public static void checkFields(Class<?> clazz, FieldDescriptor... fields) {
ClassWrapper<?> cw = Reflect.wrapClass(clazz);
Stream.of(fields).forEach(fieldDescriptor -> {
try {
Ensure.ensurePresent(
cw.getField(fieldDescriptor.getFieldName(), fieldDescriptor.getFieldType()),
String.format("Field %s %s not found",
fieldDescriptor.getFieldType(),
fieldDescriptor.getFieldName())
);
} catch (Exception e) {
throw new NullPointerException(e.getLocalizedMessage());
}
});
}
Validate.java 文件源码
项目:Shuriken
阅读 32
收藏 0
点赞 0
评论 0
/**
* Check fields availability in wrapped class agains info defined in
* {@link FieldDescriptor} objects
*
* @param cw Wrapped class to perform check on
* @param fields {@link FieldDescriptor} objects
*/
@Contract("null, _ -> fail")
public static void checkFields(ClassWrapper<?> cw, FieldDescriptor... fields) {
Ensure.notNull(cw, "ClassWrapper shouldn't be null!");
Stream.of(fields).forEach(fieldDescriptor -> {
try {
Ensure.ensurePresent(
cw.getField(fieldDescriptor.getFieldName(), fieldDescriptor.getFieldType()),
String.format("Field %s %s not found",
fieldDescriptor.getFieldType(),
fieldDescriptor.getFieldName())
);
} catch (Exception e) {
throw new NullPointerException(e.getLocalizedMessage());
}
});
}
MethodReflectorFactory.java 文件源码
项目:Shuriken
阅读 27
收藏 0
点赞 0
评论 0
@NotNull
@Contract("null, _, null -> fail")
private String generateName(ClassWrapper<?> target, int flags, Class<?> intf) {
notNull(target, "Target class must not be null!");
notNull(intf, "Interface class must not be null!");
StringBuilder classNameBuilder = new StringBuilder();
classNameBuilder.append(MethodReflector.class.getName());
classNameBuilder.append('.');
classNameBuilder.append("$Target$");
classNameBuilder.append(getClassName(target.getWrappedClass().getName()));
classNameBuilder.append('$');
classNameBuilder.append(getClassName(intf.getName()));
classNameBuilder.append('$');
classNameBuilder.append(COUNTER.computeIfAbsent(intf, k -> new AtomicInteger(0)).getAndIncrement());
return classNameBuilder.toString();
}
DefaultImpexHeaderNameHighlighterService.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 28
收藏 0
点赞 0
评论 0
@Contract(pure = false)
protected void highlightArea(
@NotNull final Editor editor,
@NotNull final PsiElement impexFullHeaderParameter
) {
Validate.notNull(editor);
Validate.notNull(impexFullHeaderParameter);
if (isAlreadyHighlighted(editor, impexFullHeaderParameter)) {
return;
}
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
final PsiElement currentHighlightedElement = highlightedBlocks.remove(editor);
if (null != currentHighlightedElement) {
modifyHighlightedArea(editor, currentHighlightedElement, true);
}
highlightedBlocks.put(editor, impexFullHeaderParameter);
modifyHighlightedArea(editor, impexFullHeaderParameter, false);
}
});
}
Commands.java 文件源码
项目:ProjectAltaria
阅读 32
收藏 0
点赞 0
评论 0
@NotNull
@Contract("null -> fail")
public static List<String> splitByWhitespace(@NotNull String args) {
@NotNull Matcher matcher = Regexes.WHITESPACE_SPLIT.pattern().matcher(Objects.requireNonNull(args));
//As seen on http://stackoverflow.com/a/7804472
@NotNull List<String> list = new ArrayList<>();
while (matcher.find()) {
list.add(matcher.group(1).replace("\"", ""));
}
return list;
}
Article.java 文件源码
项目:strictfp-back-end
阅读 36
收藏 0
点赞 0
评论 0
@NotNull
@Contract(pure = true)
public Set<String> getTags() {
Set<String> tagSet = new HashSet<>();
for (Tag thisTag : tags)
tagSet.add(thisTag.getName());
return tagSet;
}
SmartImpexFoldingPlaceholderBuilder.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 28
收藏 0
点赞 0
评论 0
@NotNull
@Contract(pure = true)
private String getValueText(final @NotNull ImpexAttribute impexAttribute) {
Validate.notNull(impexAttribute);
if (null == impexAttribute.getAnyAttributeValue() || (StringUtils.isBlank(impexAttribute.getAnyAttributeValue()
.getText()))) {
return impexAttribute.getText();
}
return impexAttribute.getAnyAttributeValue().getText();
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 27
收藏 0
点赞 0
评论 0
@Override
@Contract(
pure = true
)
public PsiManager getManager() {
return xmlTag.getManager();
}
SmartImpexFoldingPlaceholderBuilder.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 36
收藏 0
点赞 0
评论 0
@Contract(pure = true)
private boolean quoteAwareStringEquals(@Nullable final String quotedString, @Nullable final String value) {
return (null == quotedString) == (null == value)
&& (null == quotedString
|| quotedString.equals(value)
|| ('\'' + quotedString + '\'').equals(value)
|| ('"' + quotedString + '"').equals(value));
}
ImpexPsiUtils.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 36
收藏 0
点赞 0
评论 0
@Contract(value = "null -> false", pure = true)
public static boolean isUserRightsMacros(@Nullable final PsiElement psiElement) {
return psiElement != null && Objects.equals(
ImpexTypes.ROOT_MACRO_USAGE,
CommonPsiUtils.getNullSafeElementType(psiElement)
) && (psiElement.getText().equals("$START_USERRIGHTS") || psiElement.getText().equals("$END_USERRIGHTS"));
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 25
收藏 0
点赞 0
评论 0
@Override
@Contract(
pure = true
)
public PsiElement getPrevSibling() {
return xmlTag.getPrevSibling();
}
ArrayList8.java 文件源码
项目:PopulationSimulator
阅读 35
收藏 0
点赞 0
评论 0
@Contract (pure = true)
public boolean contains (@NotNull Predicate<? super E> filter)
{
//region --> Check params
if (filter == null) throw new IllegalArgumentException("Filter param is null");
//endregion
return this.stream().anyMatch(filter::test);
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 28
收藏 0
点赞 0
评论 0
@Override
@Contract(
pure = true
)
public int getStartOffsetInParent() {
return xmlTag.getStartOffsetInParent();
}
DefaultImpexHeaderNameHighlighterService.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 32
收藏 0
点赞 0
评论 0
@Contract(pure = true)
protected boolean isAlreadyHighlighted(
@NotNull final Editor editor,
@Nullable final PsiElement impexFullHeaderParameter
) {
Validate.notNull(editor);
return this.highlightedBlocks.get(editor) == impexFullHeaderParameter;
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 22
收藏 0
点赞 0
评论 0
@Override
@Nullable
@Contract(
pure = true
)
public PsiReference findReferenceAt(int i) {
return xmlTag.findReferenceAt(i);
}
CommonPsiUtils.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 35
收藏 0
点赞 0
评论 0
@Nullable
@Contract(pure = true)
public static PsiElement getNextNonWhitespaceElement(@NotNull final PsiElement element) {
Validate.notNull(element);
PsiElement nextSibling = element.getNextSibling();
while (null != nextSibling && ImpexPsiUtils.isWhiteSpace(nextSibling)) {
nextSibling = nextSibling.getNextSibling();
}
return nextSibling;
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 24
收藏 0
点赞 0
评论 0
@Override
@NonNls
@Contract(
pure = true
)
public String getText() {
return xmlTag.getText();
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 35
收藏 0
点赞 0
评论 0
@Override
@Contract(
pure = true
)
public PsiElement getNavigationElement() {
return xmlTag.getNavigationElement();
}
LineMarkerXmlTagDecorator.java 文件源码
项目:magento2-phpstorm-plugin
阅读 30
收藏 0
点赞 0
评论 0
@Override
@Contract(
pure = true
)
public PsiElement getOriginalElement() {
return xmlTag.getOriginalElement();
}
ImpexFoldingLinesFilter.java 文件源码
项目:hybris-integration-intellij-idea-plugin
阅读 53
收藏 0
点赞 0
评论 0
@Contract(pure = true)
private boolean isFoldable(@Nullable final PsiElement element) {
return null != element
&& this.isSupportedType(element)
&& !(isLineBreak(element) && isHeaderLine(element.getPrevSibling()))
&& !(isLineBreak(element) && isUserRightsMacros(element.getPrevSibling()))
&& !(isLineBreak(element) && element.getNextSibling() == null);
}
SimpleOnProgressChangeListener.java 文件源码
项目:Flubber
阅读 27
收藏 0
点赞 0
评论 0
@Contract("_ -> !null")
public static DiscreteSeekBar.OnProgressChangeListener forProgressChanged(OnProgressChangedListener listener) {
return new SimpleOnProgressChangeListener() {
@Override
public void onProgressChanged(DiscreteSeekBar seekBar, int value, boolean fromUser) {
listener.onProgressChanged(seekBar, value, fromUser);
}
};
}