本文整理汇总了Java中com.intellij.openapi.util.UserDataHolderEx.putUserDataIfAbsent方法的典型用法代码示例。如果您正苦于以下问题:Java UserDataHolderEx.putUserDataIfAbsent方法的具体用法?Java UserDataHolderEx.putUserDataIfAbsent怎么用?Java UserDataHolderEx.putUserDataIfAbsent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.openapi.util.UserDataHolderEx
的用法示例。
在下文中一共展示了UserDataHolderEx.putUserDataIfAbsent方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getParameterizedCachedValue
import com.intellij.openapi.util.UserDataHolderEx; //导入方法依赖的package包/类
public <T, D extends UserDataHolder, P> T getParameterizedCachedValue(@NotNull D dataHolder,
@NotNull Key<ParameterizedCachedValue<T,P>> key,
@NotNull ParameterizedCachedValueProvider<T, P> provider,
boolean trackValue,
P parameter) {
ParameterizedCachedValue<T,P> value;
if (dataHolder instanceof UserDataHolderEx) {
UserDataHolderEx dh = (UserDataHolderEx)dataHolder;
value = dh.getUserData(key);
if (value == null) {
value = createParameterizedCachedValue(provider, trackValue);
value = dh.putUserDataIfAbsent(key, value);
}
}
else {
synchronized (dataHolder) {
value = dataHolder.getUserData(key);
if (value == null) {
value = createParameterizedCachedValue(provider, trackValue);
dataHolder.putUserData(key, value);
}
}
}
return value.getValue(parameter);
}
示例2: getParameterizedCachedValue
import com.intellij.openapi.util.UserDataHolderEx; //导入方法依赖的package包/类
public <T, D extends UserDataHolder, P> T getParameterizedCachedValue(@Nonnull D dataHolder,
@Nonnull Key<ParameterizedCachedValue<T, P>> key,
@Nonnull ParameterizedCachedValueProvider<T, P> provider,
boolean trackValue,
P parameter) {
ParameterizedCachedValue<T, P> value;
if (dataHolder instanceof UserDataHolderEx) {
UserDataHolderEx dh = (UserDataHolderEx)dataHolder;
value = dh.getUserData(key);
if (value == null) {
value = createParameterizedCachedValue(provider, trackValue);
value = dh.putUserDataIfAbsent(key, value);
}
}
else {
synchronized (dataHolder) {
value = dataHolder.getUserData(key);
if (value == null) {
value = createParameterizedCachedValue(provider, trackValue);
dataHolder.putUserData(key, value);
}
}
}
return value.getValue(parameter);
}
示例3: getCachedValue
import com.intellij.openapi.util.UserDataHolderEx; //导入方法依赖的package包/类
@Override
@Nullable
public <T, D extends UserDataHolder> T getCachedValue(@NotNull D dataHolder,
@NotNull Key<CachedValue<T>> key,
@NotNull CachedValueProvider<T> provider,
boolean trackValue) {
CachedValueChecker.checkProvider(provider, dataHolder);
CachedValue<T> value;
if (dataHolder instanceof UserDataHolderEx) {
UserDataHolderEx dh = (UserDataHolderEx)dataHolder;
value = dh.getUserData(key);
if (value instanceof CachedValueBase && !((CachedValueBase)value).isFromMyProject(myProject)) {
value = null;
dh.putUserData(key, null);
}
if (value == null) {
value = createCachedValue(provider, trackValue);
assert ((CachedValueBase)value).isFromMyProject(myProject);
value = dh.putUserDataIfAbsent(key, value);
}
}
else {
synchronized (dataHolder) {
value = dataHolder.getUserData(key);
if (value instanceof CachedValueBase && !((CachedValueBase)value).isFromMyProject(myProject)) {
value = null;
}
if (value == null) {
value = createCachedValue(provider, trackValue);
dataHolder.putUserData(key, value);
}
}
}
return value.getValue();
}
示例4: getParameterizedCachedValue
import com.intellij.openapi.util.UserDataHolderEx; //导入方法依赖的package包/类
public <T, D extends UserDataHolder, P> T getParameterizedCachedValue(@NotNull D dataHolder,
@NotNull Key<ParameterizedCachedValue<T,P>> key,
@NotNull ParameterizedCachedValueProvider<T, P> provider,
boolean trackValue,
P parameter) {
ParameterizedCachedValue<T,P> value;
if (dataHolder instanceof UserDataHolderEx) {
UserDataHolderEx dh = (UserDataHolderEx)dataHolder;
value = dh.getUserData(key);
if (value == null) {
value = createParameterizedCachedValue(provider, trackValue);
value = dh.putUserDataIfAbsent(key, value);
}
}
else {
synchronized (dataHolder) {
value = dataHolder.getUserData(key);
if (value == null) {
value = createParameterizedCachedValue(provider, trackValue);
dataHolder.putUserData(key, value);
}
}
}
return value.getValue(parameter);
}
示例5: getCachedValue
import com.intellij.openapi.util.UserDataHolderEx; //导入方法依赖的package包/类
@Override
@Nullable
public <T, D extends UserDataHolder> T getCachedValue(@NotNull D dataHolder,
@NotNull Key<CachedValue<T>> key,
@NotNull CachedValueProvider<T> provider,
boolean trackValue) {
CachedValue<T> value;
if (dataHolder instanceof UserDataHolderEx) {
UserDataHolderEx dh = (UserDataHolderEx)dataHolder;
value = dh.getUserData(key);
if (value instanceof CachedValueBase && !((CachedValueBase)value).isFromMyProject(myProject)) {
value = null;
dh.putUserData(key, null);
}
if (value == null) {
value = createCachedValue(provider, trackValue);
assert ((CachedValueBase)value).isFromMyProject(myProject);
value = dh.putUserDataIfAbsent(key, value);
}
}
else {
synchronized (dataHolder) {
value = dataHolder.getUserData(key);
if (value instanceof CachedValueBase && !((CachedValueBase)value).isFromMyProject(myProject)) {
value = null;
}
if (value == null) {
value = createCachedValue(provider, trackValue);
dataHolder.putUserData(key, value);
}
}
}
return value.getValue();
}
示例6: getCachedValue
import com.intellij.openapi.util.UserDataHolderEx; //导入方法依赖的package包/类
@Override
@Nullable
public <T, D extends UserDataHolder> T getCachedValue(@Nonnull D dataHolder,
@Nonnull Key<CachedValue<T>> key,
@Nonnull CachedValueProvider<T> provider,
boolean trackValue) {
CachedValue<T> value;
if (dataHolder instanceof UserDataHolderEx) {
UserDataHolderEx dh = (UserDataHolderEx)dataHolder;
value = dh.getUserData(key);
if (value instanceof CachedValueBase && !((CachedValueBase)value).isFromMyProject(myProject)) {
value = null;
dh.putUserData(key, null);
}
if (value == null) {
value = createCachedValue(provider, trackValue);
assert ((CachedValueBase)value).isFromMyProject(myProject);
value = dh.putUserDataIfAbsent(key, value);
}
}
else {
synchronized (dataHolder) {
value = dataHolder.getUserData(key);
if (value instanceof CachedValueBase && !((CachedValueBase)value).isFromMyProject(myProject)) {
value = null;
}
if (value == null) {
value = createCachedValue(provider, trackValue);
dataHolder.putUserData(key, value);
}
}
}
return value.getValue();
}