All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cauli.ui.selenium.PageHelper Maven / Gradle / Ivy

package org.cauli.ui.selenium;

import com.google.common.collect.Maps;
import org.cauli.common.instrument.ClassPool;
import org.cauli.common.instrument.ClassUtils;
import org.cauli.ui.annotation.Commit;
import org.cauli.ui.selenium.page.Frame;
import org.cauli.ui.selenium.page.SourcePage;
import org.cauli.ui.selenium.page.SubPage;

import java.util.Map;
import java.util.Set;

/**
 * Created by tianqing.wang on 2014/7/25
 */
public class PageHelper {
    private Map> frameMap = Maps.newHashMap();
    private Map> subPageMap = Maps.newHashMap();
    private Map> sourcePageMap = Maps.newHashMap();

    private volatile static PageHelper pageHelper;

    private PageHelper(){
        Set> classes = ClassPool.getClassPool();
        for(Class clazz : classes){
            if(ClassUtils.isAssignableFromSubClass(Frame.class, clazz)){
                frameMap.put(clazz.getAnnotation(Commit.class)==null?clazz.getSimpleName():clazz.getAnnotation(Commit.class).value(), (Class) clazz);
            }else if(ClassUtils.isAssignableFromSubClass(SubPage.class,clazz)){
                subPageMap.put(clazz.getAnnotation(Commit.class)==null?clazz.getSimpleName():clazz.getAnnotation(Commit.class).value(), (Class) clazz);
            }else if(ClassUtils.isAssignableFromSubClass(Commit.class,clazz)){
                sourcePageMap.put(clazz.getAnnotation(Commit.class)==null?clazz.getSimpleName():clazz.getAnnotation(Commit.class).value(), (Class) clazz);
            }
        }
    }


    public static PageHelper getInstance(){
        if(pageHelper==null){
            synchronized (PageHelper.class){
                if(pageHelper==null){
                    pageHelper=new PageHelper();
                }
            }
        }
        return pageHelper;
    }


    public Map> getFrameMap() {
        return frameMap;
    }

    public void setFrameMap(Map> frameMap) {
        this.frameMap = frameMap;
    }

    public Map> getSubPageMap() {
        return subPageMap;
    }

    public void setSubPageMap(Map> subPageMap) {
        this.subPageMap = subPageMap;
    }

    public Map> getSourcePageMap() {
        return sourcePageMap;
    }

    public void setSourcePageMap(Map> sourcePageMap) {
        this.sourcePageMap = sourcePageMap;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy