use of com.intellij.lang.properties.IProperty in project intellij-community by JetBrains.
the class DGMMemberContributor method doCollectExtensions.
private static void doCollectExtensions(@NotNull Project project, @NotNull GlobalSearchScope resolveScope, List<String> instanceClasses, List<String> staticClasses) {
PsiPackage aPackage = JavaPsiFacade.getInstance(project).findPackage("META-INF.services");
if (aPackage == null)
return;
for (PsiDirectory directory : aPackage.getDirectories(resolveScope)) {
PsiFile file = directory.findFile(DGMUtil.ORG_CODEHAUS_GROOVY_RUNTIME_EXTENSION_MODULE);
if (file instanceof PropertiesFile) {
IProperty inst = ((PropertiesFile) file).findPropertyByKey("extensionClasses");
IProperty stat = ((PropertiesFile) file).findPropertyByKey("staticExtensionClasses");
if (inst != null)
collectClasses(inst, instanceClasses);
if (stat != null)
collectClasses(stat, staticClasses);
}
}
}
use of com.intellij.lang.properties.IProperty in project intellij-community by JetBrains.
the class FindManagerTest method searchProperty.
private void searchProperty(String query) {
FindModel findModel = new FindModel();
findModel.setStringToFind(query);
findModel.setWholeWordsOnly(true);
findModel.setFromCursor(false);
findModel.setGlobal(true);
findModel.setMultipleFiles(true);
findModel.setProjectScope(true);
findModel.setDirectoryName(mySourceDirs[0].getPath());
findModel.setWithSubdirectories(true);
List<UsageInfo> usages = findUsages(findModel);
assertEquals(2, usages.size());
if (!(usages.get(0).getFile() instanceof PsiJavaFile)) {
Collections.swap(usages, 0, 1);
}
PsiElement refElement = getParentFromUsage(usages.get(0));
assertTrue(refElement instanceof PsiLiteralExpression);
assertEquals("xx.yy", ((PsiLiteralExpression) refElement).getValue());
VirtualFile file = mySourceDirs[0].findFileByRelativePath("x/dd.properties");
assertNotNull(file);
PropertiesFile propertiesFile = (PropertiesFile) PsiManager.getInstance(myProject).findFile(file);
assertNotNull(propertiesFile);
refElement = getParentFromUsage(usages.get(1));
assertTrue(refElement instanceof IProperty);
assertSame(propertiesFile.findPropertyByKey("xx.yy"), refElement);
}
use of com.intellij.lang.properties.IProperty in project intellij-plugins by JetBrains.
the class StrutsConstantManagerImpl method getStringValue.
/**
* Returns the plain String value for the given constant.
*
* @param context Current context.
* @param strutsModel StrutsModel.
* @param name Name of constant.
* @return {@code null} if no value could be resolved.
*/
@Nullable
private static String getStringValue(@NotNull final PsiFile context, @NotNull final StrutsModel strutsModel, @NotNull @NonNls final String name) {
final Project project = context.getProject();
final Module module = ModuleUtilCore.findModuleForPsiElement(context);
assert module != null : context;
// collect all properties with matching key
final List<IProperty> properties = PropertiesImplUtil.findPropertiesByKey(project, name);
String value = null;
// 1. default.properties from struts2-core.jar
final IProperty strutsDefaultProperty = ContainerUtil.find(properties, property -> {
final VirtualFile virtualFile = property.getPropertiesFile().getVirtualFile();
return virtualFile != null && virtualFile.getFileSystem() instanceof JarFileSystem && StringUtil.endsWith(virtualFile.getPath(), STRUTS_DEFAULT_PROPERTIES) && ModuleUtilCore.moduleContainsFile(module, virtualFile, true);
});
if (strutsDefaultProperty != null) {
value = strutsDefaultProperty.getValue();
}
// 2. <constant> from StrutsModel
final Condition<Constant> constantNameCondition = constant -> Comparing.equal(constant.getName().getStringValue(), name);
final List<DomFileElement<StrutsRoot>> domFileElements = new ArrayList<>();
collectStrutsXmls(domFileElements, strutsModel, "struts-default.xml", true);
collectStrutsXmls(domFileElements, strutsModel, "struts-plugin.xml", true);
collectStrutsXmls(domFileElements, strutsModel, "struts.xml", false);
for (final DomFileElement<StrutsRoot> domFileElement : domFileElements) {
final Constant constant = ContainerUtil.find(domFileElement.getRootElement().getConstants(), constantNameCondition);
final String strutsXmlValue = constant != null ? constant.getValue().getStringValue() : null;
if (strutsXmlValue != null) {
value = strutsXmlValue;
}
}
// 3. struts.properties in current module
final IProperty strutsProperty = ContainerUtil.find(properties, property -> {
final VirtualFile virtualFile = property.getPropertiesFile().getVirtualFile();
return virtualFile != null && Comparing.equal(virtualFile.getName(), STRUTS_PROPERTIES_FILENAME) && ModuleUtilCore.moduleContainsFile(module, virtualFile, false);
});
if (strutsProperty != null) {
value = strutsProperty.getValue();
}
// 4. web.xml
final WebFacet webFacet = WebUtil.getWebFacet(context);
if (webFacet == null) {
// should not happen in real projects..
return value;
}
final WebApp webApp = webFacet.getRoot();
if (webApp == null) {
// no web.xml
return value;
}
final Filter filter = ContainerUtil.find(webApp.getFilters(), WEB_XML_STRUTS_FILTER_CONDITION);
if (filter != null) {
final ParamValue initParam = ContainerUtil.find(filter.getInitParams(), (Condition<ParamValue>) paramValue -> Comparing.equal(paramValue.getParamName().getStringValue(), name));
if (initParam != null) {
value = initParam.getParamValue().getStringValue();
}
}
return value;
}
use of com.intellij.lang.properties.IProperty in project intellij-plugins by JetBrains.
the class SocketInputHandlerImpl method writeResourceBundle.
private static void writeResourceBundle(PropertiesFile file, OutputStream out, int sourceId) throws IOException {
if (file == null) {
out.write(0);
out.write(0);
return;
}
//noinspection IOResourceOpenedButNotSafelyClosed
final AmfOutputStream amfOut = new AmfOutputStream(new ByteArrayOutputStreamEx(4 * 1024));
amfOut.writeShort(sourceId + 1);
// todo Embed, ClassReference, but idea doesn't support it too
final List<IProperty> properties = file.getProperties();
amfOut.write(Amf3Types.DICTIONARY);
amfOut.writeUInt29((properties.size() << 1) | 1);
amfOut.write(0);
for (IProperty property : properties) {
amfOut.write(property.getUnescapedKey());
amfOut.write(property.getUnescapedValue());
}
amfOut.getByteArrayOut().writeTo(out);
}
use of com.intellij.lang.properties.IProperty in project intellij-plugins by JetBrains.
the class JamResultPathTest method testResolveActionProperty.
/**
* "property" resolving to key in struts.properties.
*/
public void testResolveActionProperty() throws Exception {
myFixture.copyFileToProject("jam/ActionProperty.java");
myFixture.copyFileToProject("struts.properties");
final JamResultPath jamResultPath = getClassJam("jam.ActionProperty", JamResultPath.META_CLASS);
final IProperty property = jamResultPath.getProperty().getValue();
assertNotNull(property);
assertEquals("myProperty1", property.getName());
}
Aggregations