public Set < ViewDescription > getComponents ( final String componentName , final String viewName , final VirtualFile deploymentRoot ) { final List < ViewInformation > info = componentsByViewName . get ( viewName ) ; if ( info == null ) { return Collections . < ViewDescription > emptySet ( ) ; } if ( componentName . contains ( "#" ) ) { final String [ ] parts = componentName . split ( "#" ) ; String path = parts [ 0 ] ; if ( ! path . startsWith ( "../" ) ) { path = "../" + path ; } final VirtualFile virtualPath = deploymentRoot . getChild ( path ) ; final String name = parts [ 1 ] ; final Set < ViewDescription > ret = new HashSet < ViewDescription > ( ) ; for ( ViewInformation i : info ) { if ( i . beanName . equals ( name ) ) { //now we need to check the path if ( virtualPath . equals ( i . deploymentRoot ) ) { ret . add ( i . viewDescription ) ; } } } return ret ; } else { final Set < ViewDescription > all = new HashSet < ViewDescription > ( ) ; final Set < ViewDescription > thisDeployment = new HashSet < ViewDescription > ( ) ; for ( ViewInformation i : info ) { if ( i . beanName . equals ( componentName ) ) { all . add ( i . viewDescription ) ; if ( i . deploymentRoot . equals ( deploymentRoot ) ) { thisDeployment . add ( i . viewDescription ) ; } } } if ( all . size ( ) > 1 ) { return thisDeployment ; } return all ; } }
Get all views in the application that have the given name and view type