SGXPropertyTester.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ///////////////////////////////////////////////////////////////////////////
  2. // Copyright (c) 2018 Intel Corporation. //
  3. // //
  4. // All rights reserved. This program and the accompanying materials //
  5. // are made available under the terms of the Eclipse Public License v1.0 //
  6. // which accompanies this distribution, and is available at //
  7. // http://www.eclipse.org/legal/epl-v10.html //
  8. // //
  9. // Contributors: //
  10. // Intel Corporation - initial implementation and documentation //
  11. ///////////////////////////////////////////////////////////////////////////
  12. package com.intel.sgx.testers;
  13. import java.util.regex.Pattern;
  14. import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
  15. import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
  16. import org.eclipse.core.expressions.PropertyTester;
  17. import org.eclipse.core.resources.IProject;
  18. import org.eclipse.core.resources.IResource;
  19. import org.eclipse.jface.viewers.StructuredSelection;
  20. public class SGXPropertyTester extends PropertyTester {
  21. private static final Pattern isRelease = Pattern.compile(".*Release.*");
  22. private static final Pattern isHW = Pattern.compile(".*Hardware.*");
  23. private static final Pattern isPreRelease = Pattern.compile(".*Prerelease.*");;
  24. public SGXPropertyTester() {
  25. super();
  26. // TODO Auto-generated constructor stub
  27. }
  28. @Override
  29. public boolean test(Object receiver, String property, Object[] args,
  30. Object expectedValue) {
  31. if (property.equals("twoStepsActive")) {
  32. IProject project = getProjectOfSelectedItem(receiver);
  33. IManagedBuildInfo buildInfo = ManagedBuildManager.getBuildInfo(project);
  34. return isHW(buildInfo) && isRelease(buildInfo) && !isPreRelease(buildInfo);
  35. } else if (property.equals("sgxNatureAdded")) {
  36. IProject project = getProjectOfSelectedItem(receiver);
  37. return true;
  38. } else {
  39. return false;
  40. }
  41. }
  42. private IProject getProjectOfSelectedItem(Object receiver) {
  43. StructuredSelection selection = (StructuredSelection) receiver;
  44. IResource resource = (IResource) selection.getFirstElement();
  45. IProject project = resource.getProject();
  46. return project;
  47. }
  48. boolean isHW(IManagedBuildInfo buildInfo){
  49. return isHW.matcher(buildInfo.getConfigurationName()).matches();
  50. }
  51. boolean isRelease(IManagedBuildInfo buildInfo){
  52. return isRelease.matcher(buildInfo.getConfigurationName()).matches();
  53. }
  54. boolean isPreRelease(IManagedBuildInfo buildInfo){
  55. return isPreRelease.matcher(buildInfo.getConfigurationName()).matches();
  56. }
  57. }