かずきのBlog

C#やJavaやRubyとメモ書き

目次

Blog 利用状況

ニュース

わんくまBlogが不安定になったため、前に書いてたはてなダイアリーにメインを移動します。
かずきのBlog@Hatena
技術的なネタは、こちらにも、はてなへのリンクという形で掲載しますが、雑多ネタははてなダイアリーだけに掲載することが多いと思います。
コメント
プログラマ的自己紹介
お気に入りのツール/IDE
プロフィール
経歴
広告
アクセサリ

書庫

日記カテゴリ

[NetBeans6]モジュールからJavaのソースの情報にアクセスするには

NetBeans5.xくらいまでは、きしださんのサイトの3.4からあるようにJMIとかいうのを使ってソースにどんなクラスがあって、そこにはどんなメソッドがあって…という情報にアクセスすることができた。
結構、こういう情報をもとに何かをするのは好きだったりする。

でも、NetBeans6では、これらのAPIは軒並みというか全部?消えてなくなってしまってる。
悲しいかな。

ということで、代わりは何だろうと探してたら見つけた。
ここにあった。
http://wiki.netbeans.info/wiki/view/Java_DevelopersGuide

まだ、書いてる途中っぽいけど、ここらへんにしか情報がないっぽいのでとてもありがたい!!
ということで早速…

モジュールのプロジェクトを作って実験してみる。
モジュールのプロジェクトを、ここではShowMetaという名前で作った。
パッケージはcom.wankuma.kazuki.showmetaにしてOK。

com.wankuma.kazuki.showmetaにアクションを新規に作成する。
メニューの何処でもいいので適当な所に新規作成をする。
クラス名は、ShowActionでラベルは「見せて」にしておいた。
とりあえず選択されたファイルに定義されてるクラスの情報をゲットしてみようと思う。
とりあえず、集めたい情報を入れるためのクラスを1つこしらえる。

Clazz.java
package com.wankuma.kazuki.showmeta;

import java.util.ArrayList;
import java.util.List;

public class Clazz {
    private String name;
    private List<String> methods = new ArrayList<String>();

    public List<String> getMethods() {
        return methods;
    }

    public void setMethods(List<String> methods) {
        this.methods = methods;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return new StringBuilder("class ").append(name).append(", methods: ").append(methods).toString();
    }
}

何の変哲もないクラスなので説明は省略。
続いて、ソースのTreeをたどるためのクラスを作る。

ClassInfoScanner.java
package com.wankuma.kazuki.showmeta;

import com.sun.source.tree.ClassTree;
import com.sun.source.util.TreePathScanner;
import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.ElementFilter;
import org.netbeans.api.java.source.CompilationInfo;

public class ClassInfoScanner extends TreePathScanner<Clazz, Void> {

    private CompilationInfo info;

    public ClassInfoScanner(CompilationInfo info) {
        this.info = info;
    }

    @Override
    public Clazz visitClass(ClassTree tree, Void v) {
        System.out.println("visitClass");
        Element element = info.getTrees().getElement(getCurrentPath());
        if (element == null) {
            return null;
        }
        TypeElement te = (TypeElement) element;
        Clazz clazz = new Clazz();
        clazz.setName(te.getQualifiedName().toString());
        for (ExecutableElement method : ElementFilter.methodsIn(te.getEnclosedElements())) {
            clazz.getMethods().add(method.getSimpleName().toString());
        }
        return clazz;
    }
}

なかなか、直感的に使うのは難しそうだ。
visitClassメソッドで、色々やってみている。ここらへんが感覚でわかるようになるまでガンガンコードかかないと駄目かな。

後は、ボタンを押したときに、これを読んで取得した情報を出力する。

ShowAction.java
package com.wankuma.kazuki.showmeta;

import com.sun.source.util.TreePath;
import java.io.IOException;
import org.netbeans.api.java.source.ClasspathInfo;
import org.netbeans.api.java.source.CompilationController;
import org.netbeans.api.java.source.JavaSource;
import org.netbeans.api.java.source.Task;
import org.openide.filesystems.FileObject;
import org.openide.loaders.DataObject;
import org.openide.util.Exceptions;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;
import org.openide.util.actions.CallableSystemAction;
import org.openide.windows.IOProvider;
import org.openide.windows.InputOutput;

public final class ShowAction extends CallableSystemAction {

    public void performAction() {
        try {
            DataObject currentDaat = Utilities.actionsGlobalContext().lookup(DataObject.class);
            if (currentDaat == null) {
                return;
            }
            FileObject currentFile = currentDaat.getPrimaryFile();
            ClasspathInfo classpathInfo = ClasspathInfo.create(currentFile);
            JavaSource javaSource = JavaSource.create(classpathInfo, currentFile);

            javaSource.runUserActionTask(new Task<CompilationController>() {
                public void run(CompilationController parameter) throws Exception {
                    parameter.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
                    Clazz clazz = new ClassInfoScanner(parameter).scan(parameter.getCompilationUnit(), null);
                    InputOutput io = IOProvider.getDefault().getIO("かずき", false);
                    io.select();
                    io.getOut().reset();
                    io.getOut().println(clazz);
                }
            }, true);
        } catch (IOException ex) {
            Exceptions.printStackTrace(ex);
        }
    }

    public String getName() {
        return NbBundle.getMessage(ShowAction.class, "CTL_ShowAction");
    }

    @Override
    protected void initialize() {
        super.initialize();
        // see org.openide.util.actions.SystemAction.iconResource() Javadoc for more details
        putValue("noIconInMenu", Boolean.TRUE);
    }

    public HelpCtx getHelpCtx() {
        return HelpCtx.DEFAULT_HELP;
    }

    @Override
    protected boolean asynchronous() {
        return false;
    }
}

これを実行すると、選択したファイルの出力ウィンドウにクラス名とメソッドが出てくる。
たとえばShowActionを選択して実行すると下のような結果になる。

class com.wankuma.kazuki.showmeta.ShowAction, methods: [performAction, getName, initialize, getHelpCtx, asynchronous]

慣れていかないといけないなぁ。

投稿日時 : 2007年12月20日 0:00

Feedback

# re: [NetBeans6]モジュールからJavaのソースの情報にアクセスするには 2007/12/20 2:15 凪瀬

TreePathScannerってのがVisitorパターンになってるのかな。
Javaの構文解析木のあたりのライブラリと近いように感じました。
http://java.sun.com/javase/ja/6/docs/ja/jdk/api/javac/tree/com/sun/source/util/package-summary.html

# re: [NetBeans6]モジュールからJavaのソースの情報にアクセスするには 2007/12/20 6:56 かずき

それと同じです~
個人的には、直感的じゃないんですよ(>_<;

# re: [NetBeans6]モジュールからJavaのソースの情報にアクセスするには 2007/12/20 11:15 凪瀬

Visitorは正直大変…
構文解析のVisitorはメソッドが凄まじく多いので眩暈がするw

# re: [NetBeans6]モジュールからJavaのソースの情報にアクセスするには 2007/12/21 0:38 かずき

ElementsクラスのgetTypeElement(だったかな)ってメソッドからクラス名指定で情報とってこれるので、そっちだと楽そうです

# [Java][NetBeans][NetBeans Plugin]Visitorを使わないで選択されたクラスの情報にアクセスする 2010/03/04 1:01 かずきのBlog

[Java][NetBeans][NetBeans Plugin]Visitorを使わないで選択されたクラスの情報にアクセスする

# Burberry Watches 2012/10/25 4:10 http://www.burberryoutletonlineshopping.com/burber

Some really great content on this internet site , thankyou for contribution.
Burberry Watches http://www.burberryoutletonlineshopping.com/burberry-watches.html

# wallet 2012/10/25 4:10 http://www.burberryoutletonlineshopping.com/burber

You have brought up a very superb details , regards for the post.
wallet http://www.burberryoutletonlineshopping.com/burberry-wallets-2012.html

# t shirts 2012/10/25 4:11 http://www.burberryoutletonlineshopping.com/burber

I like this weblog so much, saved to fav. "To hold a pen is to be at war." by Francois Marie Arouet Voltaire.
t shirts http://www.burberryoutletonlineshopping.com/burberry-womens-shirts.html

# burberry bags 2012/10/25 4:12 http://www.burberryoutletonlineshopping.com/burber

You can definitely see your expertise in the paintings you write. The world hopes for more passionate writers like you who aren't afraid to say how they believe. Always go after your heart. "History is the version of past events that people have decided to agree upon." by Napoleon.
burberry bags http://www.burberryoutletonlineshopping.com/burberry-tote-bags.html

# The 4 games forward of both new titles had been stalwarts of cell gaming Clash of Clans, Mobile
Strike, Game of War and Monster Strike. 2017/06/18 21:35 The 4 games forward of both new titles had been st

The 4 games forward of both new titles had been stalwarts of cell gaming Clash of Clans, Mobile Strike,
Game of War and Monster Strike.

# Now it wont take lengthy before you look around and discover a bunch of videos on YouTube that declare that
this tool does this and that software does that only to seek
out that they don't work. 2017/06/18 21:38 Now it wont take lengthy before you look around <

Now it wont take lengthy before you look around and discover
a bunch of videos on YouTube that declare that this tool does this and that software does
that only to seek out that they don't work.

# Highly descriptive post, I loved that bit. Will there be a
part 2? 2017/07/10 8:17 Garland

Highly descriptive post, I loved that bit. Will there be a part 2?

# Mother of pearl is a popular selection for jewelry as
a result of it offers all the wonder and iridescence of fancy pearls at a a lot cheaper price, and
could be carved into a large number of shapes. 2017/07/31 1:16 Mother of pearl is a popular selection for jewelry

Mother of pearl is a popular selection for jewelry as a result of it offers all
the wonder and iridescence of fancy pearls at a a lot cheaper price,
and could be carved into a large number of shapes.

# Students & friends of Kingham Jewellery College
have come together to create a set of work for Artweeks. 2017/08/30 7:32 Students & friends of Kingham Jewellery Colleg

Students & friends of Kingham Jewellery College have come together to create a set of work for Artweeks.

# rgPaCaJxNgegFA 2019/04/19 18:56 https://www.suba.me/

vUvRcY Thanks in favor of sharing such a fastidious thinking,

# pwUuXEhrwQLrUcNyA 2019/04/26 20:25 http://www.frombusttobank.com/

This is a really good tip especially to those fresh to the blogosphere. Brief but very accurate info Thanks for sharing this one. A must read article!

# wuCBBwvpJIZG 2019/04/26 21:25 http://www.frombusttobank.com/

Thanks a lot for the blog.Really looking forward to read more. Great.

# yQsohzNwVuvQIqe 2019/04/27 20:00 https://telegra.ph/Ideal-Video-Camera-Equipment-Yo

Im thankful for the article. Keep writing.

# EzeleeAPhbY 2019/04/28 4:36 http://tinyurl.com/y37rvpf5

Looking forward to reading more. Great blog.

# isFojjZyAKyfbDANMm 2019/05/01 17:46 https://www.bintheredumpthat.com

This particular blog is without a doubt educating and besides factual. I have discovered a bunch of useful stuff out of this blog. I ad love to return again and again. Thanks!

# fGZaFbimmz 2019/05/01 20:12 http://biblicalfinancialcounseling.com/__media__/j

Major thankies for the post. Much obliged.

# mLHMLvXhYW 2019/05/01 22:08 http://tiresailor0.ebook-123.com/post/-fire-exting

You have got some real insight. Why not hold some sort of contest for your readers?

# BFNKhCQUqc 2019/05/03 0:41 https://www.ljwelding.com/hubfs/welding-tripod-500

Im obliged for the blog post.Thanks Again. Awesome.

# LCNEPivpqyyEAoVKcaC 2019/05/03 11:11 http://xn--b1adccaenc8bealnk.com/users/lyncEnlix41

pretty beneficial material, overall I think this is really worth a bookmark, thanks

# GjcCtMTsEKZhFkh 2019/05/03 12:42 https://mveit.com/escorts/united-states/san-diego-

What are the laws as to using company logos in blog posts?

# feoRARQvECMQRuvIYH 2019/05/03 15:08 https://www.youtube.com/watch?v=xX4yuCZ0gg4

Just what I was looking for, thanks for putting up. There are many victories worse than a defeat. by George Eliot.

# NtUaFUpCQyLnx 2019/05/03 15:47 https://mveit.com/escorts/netherlands/amsterdam

OmegaTheme Content Demo deadseacosmetics

# kPOBQUAiLcNhCITJOP 2019/05/03 18:33 https://mveit.com/escorts/australia/sydney

It'а?s really a great and useful piece of info. I am satisfied that you simply shared this useful info with us. Please keep us informed like this. Thanks for sharing.

# FjsINKkICnteITHJ 2019/05/03 19:54 https://talktopaul.com/pasadena-real-estate

Really appreciate you sharing this blog.Thanks Again. Really Great.

# XikkpJQZzFEdq 2019/05/03 20:39 https://mveit.com/escorts/united-states/houston-tx

This is one awesome blog.Really looking forward to read more. Want more.

# nsiwRxuuLvg 2019/05/04 1:08 http://abd-ana.net/__media__/js/netsoltrademark.ph

I think other web site proprietors should take this web site as an model, very clean and fantastic user friendly style and design, let alone the content. You are an expert in this topic!

# EmPoQSjGcqFGZFsg 2019/05/04 4:36 https://www.gbtechnet.com/youtube-converter-mp4/

magnificent points altogether, you just won a new reader. What might you recommend in regards to your post that you made a few days ago? Any sure?

# prIzYUCQJm 2019/05/07 17:59 https://www.mtcheat.com/

Normally I do not read article on blogs, but I wish to say that this write-up very compelled me to try and do so! Your writing taste has been amazed me. Thanks, very great post.

# TJALXEKUecIqf 2019/05/08 19:44 https://ysmarketing.co.uk/

The color of one as blog is fairly excellent. i would like to possess these colors too on my blog.* a.* a

# kBlHnmbXjMGd 2019/05/09 1:48 https://www.youtube.com/watch?v=Q5PZWHf-Uh0

the excellent information you have here on this post. I am returning to your web site for more soon.

# szmmbGlcsugCINzAUq 2019/05/09 4:18 https://writexo.com/12i8hzsx

My brother recommended I might like this web site. He was entirely right. This post actually made my day. You cann at imagine just how much time I had spent for this information! Thanks!

# sSaEChYMGC 2019/05/09 9:10 https://amasnigeria.com/registration-form/

Wow, fantastic movie porn child weblog structure! How long have you ever been running a blog for? you make blogging glance easy. The entire glance of your website is great, as well as the content!

# DFVNwzWnfRYj 2019/05/09 10:48 http://healthnewswbv.trekcommunity.com/if-you-have

Tarologie gratuite immediate divination en ligne

# xlmzTHEQRF 2019/05/09 11:28 https://www.anobii.com/0195dfd094d0422e1d/profile#

Replica Oakley Sunglasses Replica Oakley Sunglasses

# JDQLTTEfhcmTCGS 2019/05/09 23:25 https://www.ttosite.com/

Wanted to drop a comment and let you know your Feed isnt working today. I tried including it to my Google reader account and got absolutely nothing.

# uVlhkwtNflaRTTB 2019/05/10 2:24 https://www.mtcheat.com/

I visit every day a few web sites and websites to read articles, however this webpage presents quality based articles.

# lSxacJBvBVcX 2019/05/10 6:49 https://bgx77.com/

You made some really good points there. I looked on the web to find out more about the issue and found most individuals will go along with your views on this website.

# ETfhtOITteKuSxzaj 2019/05/10 13:55 https://argentinanconstructor.home.blog/

Its hard to find good help I am constantnly saying that its difficult to find good help, but here is

# WOFctIEBmfqFPDqsnqm 2019/05/10 15:19 http://floraviola.ru/bitrix/redirect.php?event1=&a

It as actually a wonderful and handy section of data. Now i am satisfied that you choose to discussed this useful details about. Remember to stop us educated like this. Many thanks for revealing.

# MeyLYYyBqvjXrKkiCX 2019/05/10 23:18 https://www.youtube.com/watch?v=Fz3E5xkUlW8

In truth, your creative writing abilities has inspired me to get my very own site now

# wxWUByBEILTqftGvXD 2019/05/11 4:13 https://jonahguest.wordpress.com/

topic, however, you sound like you know what you are talking

# YKsveiWJUC 2019/05/11 4:50 https://www.mtpolice88.com/

I truly appreciate this post. I ave been looking all over for this! Thank goodness I found it on Bing. You ave made my day! Thanks again.

# MdUKExXWSfFEkuSOOLe 2019/05/11 8:36 http://tampabaywomens.com/__media__/js/netsoltrade

Thanks for another excellent article. Where else could anyone get that type of info in such an ideal way of writing? I have a presentation next week, and I am on the look for such information.

# kMNoErTJWDpSsKY 2019/05/12 20:20 https://www.ttosite.com/

This is a good tip especially to those fresh to the blogosphere. Short but very precise info Many thanks for sharing this one. A must read article!

# DNhgkDRnyT 2019/05/13 0:07 https://www.mjtoto.com/

I saw someone writing about this on Tumblr and it linked to

# HUyIgvNiMLp 2019/05/13 19:10 https://www.ttosite.com/

Im thankful for the article.Much thanks again.

# wloZnJCFQLyzsV 2019/05/14 18:32 https://www.dajaba88.com/

Very informative article.Really looking forward to read more.

# vKKkvqkUbGSHPv 2019/05/14 20:03 https://bgx77.com/

The color of one as blog is fairly excellent. i would like to possess these colors too on my blog.* a.* a

# elTyEYlSPlgGFKHG 2019/05/14 23:12 https://totocenter77.com/

web site, since I experienced to reload the

# lWiHQwaakEgDC 2019/05/15 0:43 https://www.mtcheat.com/

This is one awesome blog.Much thanks again. Much obliged.

# YwYYIOlLONCJWmEuKy 2019/05/15 14:29 https://www.talktopaul.com/west-hollywood-real-est

It as just letting clientele are aware that we are nevertheless open up for home business.

# SnxDPCcMecjSma 2019/05/15 17:05 https://vaserotate5.home.blog/2019/05/14/install-t

It as very simple to find out any matter on web as compared to books, as I found this piece of writing at this web page.

# fQuJyFWorZB 2019/05/16 0:23 https://www.kyraclinicindia.com/

Im thankful for the blog post.Much thanks again. Want more.

# FuEkxZPsjnNSqSV 2019/05/17 2:18 https://www.sftoto.com/

online. Please let me know if you have any kind of suggestions or tips for new

# AsjOGlPlko 2019/05/17 3:50 https://www.ttosite.com/

pretty useful material, overall I imagine this is worthy of a bookmark, thanks

# oclEBLFOndvLgOCEGW 2019/05/17 6:09 https://www.youtube.com/watch?v=Q5PZWHf-Uh0

Thanks for sharing, this is a fantastic blog article.

# rjafMrZaViBAbav 2019/05/17 19:05 https://www.youtube.com/watch?v=9-d7Un-d7l4

I truly appreciate this blog post.Really looking forward to read more. Keep writing.

# pNzoxUfKIVj 2019/05/17 20:53 https://www.evernote.com/shard/s679/sh/a6944bfc-fe

It as laborious to seek out knowledgeable people on this subject, but you sound like you already know what you are speaking about! Thanks

# byMWTcggwXnQWQ 2019/05/18 2:37 http://saudiairlines.org/__media__/js/netsoltradem

Usually I don at read post on blogs, but I wish to say that this write-up very forced me to try and do it! Your writing taste has been amazed me. Thanks, quite great post.

# TsiNbPiBpYIF 2019/05/18 7:02 https://totocenter77.com/

I will immediately clutch your rss feed as I can at find your email subscription link or newsletter service. Do you have any? Kindly permit me recognize in order that I may just subscribe. Thanks.

# NuTvUtRHnrLXCyxD 2019/05/18 9:39 https://bgx77.com/

recommend to my friends. I am confident they will be benefited from this website.

# aTUXtAThlUGcbKCNwC 2019/05/18 10:53 https://www.dajaba88.com/

This is one awesome article post.Much thanks again.

# JxvZRYwDDbZqC 2019/05/21 3:30 http://www.exclusivemuzic.com/

You made some reasonable points there. I looked on the internet object of the climax and found most individuals intent scrutinize along with with your website.

# pazspcXTatPskld 2019/05/21 20:04 https://webflow.com/compebusra

I truly appreciate this post.Much thanks again. Great.

# TMTfhfBZNRyfV 2019/05/21 21:51 https://nameaire.com

You can definitely see your skills in the work you write. The sector hopes for even more passionate writers like you who aren at afraid to say how they believe. All the time go after your heart.

# ThrbEomnzRjIeE 2019/05/22 19:48 https://www.debt-talk.com/members/bananarobert4/ac

You have made some decent points there. I looked on the net for more information about the issue and found most individuals will go along with your views on this web site.

# BCraciNFsedTZlGOUAO 2019/05/22 22:28 https://mannsmedegaard1465.de.tl/This-is-our-blog/

Terrific paintings! That is the type of info that should be shared across the internet. Shame on Google for now not positioning this post upper! Come on over and visit my web site. Thanks =)

# PTumVCllkoqokSY 2019/05/23 5:55 http://court.uv.gov.mn/user/BoalaEraw277/

The most effective and clear News and why it means lots.

# SBOQwFhOXCP 2019/05/24 3:38 https://www.rexnicholsarchitects.com/

Muchos Gracias for your article. Keep writing.

# cgkyNyNaErwXKxjX 2019/05/24 12:23 http://nifnif.info/user/Batroamimiz757/

There as definately a lot to find out about this issue. I like all the points you made.

# clONIZNUmMegDo 2019/05/24 17:01 http://tutorialabc.com

thanks to the author for taking his time on this one.

# NipCEFmEvmwHnaDV 2019/05/24 19:20 http://bgtopsport.com/user/arerapexign597/

Well I truly enjoyed studying it. This article offered by you is very helpful for correct planning.

# NilNiNcyav 2019/05/27 2:38 http://poster.berdyansk.net/user/Swoglegrery410/

qui se retrouve et son petit cul les hommes

# QcyHnVHcfYSRf 2019/05/27 17:40 https://www.ttosite.com/

You might try adding a video or a picture or two

# dvNwwAXoTV 2019/05/27 21:40 http://totocenter77.com/

in the early hours in the dawn, because i love to gain knowledge of more and more.

# vPSLUDNXpMHjNsh 2019/05/27 23:16 https://www.mtcheat.com/

This is one awesome article.Really looking forward to read more. Awesome.

# qdfequayNghZeeBxye 2019/05/28 1:02 https://exclusivemuzic.com

It as super page, I was looking for something like this

# WTvACEwbsNaqBHIFUa 2019/05/28 2:39 https://ygx77.com/

Really appreciate you sharing this blog.Much thanks again. Great.

# PGNhLepILm 2019/05/29 17:07 https://lastv24.com/

Link exchange is nothing else however it is only placing the other person as web

# JRJcaxsqSHazMBPQh 2019/05/29 23:41 http://www.crecso.com/category/home-decor/

Wow, great article.Much thanks again. Want more.

# cBKtqBGkQRpEfewtO 2019/05/30 2:29 http://www.appstunes.com/story.php?title=comparado

three triple credit report How hard is it to write a wordpress theme to fit into an existing site?

# YxqMRWvPfGT 2019/05/30 10:43 https://www.kongregate.com/accounts/CaliforniaHera

Johnny Depp is my idol. such an amazing guy *

# MFlCBkNJPmkyMsVny 2019/05/31 2:56 http://anthroposophie.wiki/index.php?title=Utilisa

This awesome blog is really awesome and besides amusing. I have discovered helluva handy advices out of this amazing blog. I ad love to return over and over again. Thanks a bunch!

# SyZoFYYrmLAXIkB 2019/06/01 5:16 http://nicegamingism.world/story.php?id=9342

You made some clear points there. I did a search on the issue and found most guys will agree with your website.

# goWQuqkehPs 2019/06/04 2:19 http://abbyfield.com/__media__/js/netsoltrademark.

I went over this website and I believe you have a lot of wonderful info , saved to my bookmarks (:.

# qRRusTMaOYZgG 2019/06/04 2:40 https://www.mtcheat.com/

pretty useful stuff, overall I imagine this is worth a bookmark, thanks

# ZGzdTffDKMApwLfZCa 2019/06/04 9:32 https://my.getjealous.com/peonyeggnog45

This is a beautiful photo with very good light-weight.

# ofRXvcHKVUWgfRmqQ 2019/06/04 20:08 http://www.thestaufferhome.com/some-ways-to-find-a

I see something truly special in this internet site.

# PaeRjBRFuGNYRpngp 2019/06/05 16:28 http://maharajkijaiho.net

Spenz, by far the fastest inputs for cash. Free but iPhone/web only

# lPkeurKxEKkLXzQaP 2019/06/05 17:54 https://www.mtpolice.com/

This blog is without a doubt awesome and informative. I have picked a lot of handy advices out of this blog. I ad love to come back again soon. Thanks a bunch!

# oTANPbEhvMhF 2019/06/05 20:47 https://www.mjtoto.com/

Wonderful blog! I found it while searching on Yahoo

# smrqYGxONGtyoc 2019/06/05 22:08 https://betmantoto.net/

Im no professional, but I imagine you just made an excellent point. You definitely comprehend what youre talking about, and I can truly get behind that. Thanks for being so upfront and so genuine.

# rsnRYLOxtZHkRjC 2019/06/06 3:26 http://gripbreak4.jigsy.com/entries/general/Tips-O

Im no professional, but I think you just made a very good point point. You naturally know what youre talking about, and I can really get behind that. Thanks for staying so upfront and so sincere.

# tstdbnlakIimnXO 2019/06/06 23:26 http://nailpolishremovers.club/story.php?id=9226

This very blog is obviously educating and besides amusing. I have found a lot of handy tips out of it. I ad love to go back again and again. Thanks a bunch!

# IbgAMaPpGSUvg 2019/06/07 23:21 http://totocenter77.com/

wow, awesome article.Thanks Again. Great.

# DCzJlwXWzdX 2019/06/08 3:36 https://mt-ryan.com

to my friends. I am confident they will be

# ihnVJzHeHsC 2019/06/08 4:57 https://www.mtpolice.com/

This submit truly made my day. You can not consider simply how a lot time

# ZysRzwONfHOz 2019/06/08 9:04 https://betmantoto.net/

You are my role models. Many thanks for the post

# HIcogwosxgm 2019/06/10 17:42 https://xnxxbrazzers.com/

Thanks a whole lot for sharing this with all of us you really know what you are speaking about! Bookmarked. Kindly also check out my web-site =). We could possess a link exchange contract amongst us!

# wepxCQRSfJiDtJTPX 2019/06/11 2:49 http://secretgirlgames.com/profile/siennacrous

pretty practical material, overall I imagine this is well worth a bookmark, thanks

# IxhRrQEULMHktarGC 2019/06/13 17:00 http://www.usefulenglish.net/story/475975/

Really enjoyed this blog article.Thanks Again. Really Great.

# xuEsqDGhVxkinUhujw 2019/06/14 18:10 https://zenwriting.net/taxiheart77/herman-miller-a

Informative and precise Its hard to find informative and precise information but here I noted

# oJvILmGIWVFLQcX 2019/06/14 20:32 https://www.liveinternet.ru/users/bach_craig/post4

visit the site Here are some of the websites we advise for our visitors

# uaBqZXEAaEdYLB 2019/06/15 4:58 http://court.uv.gov.mn/user/BoalaEraw906/

It as nearly impossible to find experienced people about this topic, but you sound like you know what you are talking about! Thanks

# sWiGrcgrsCYKxpeFyXJ 2019/06/15 18:08 http://bgtopsport.com/user/arerapexign484/

Only wanna comment that you have a very decent site, I love the layout it actually stands out.

# DHWEtNMhhfbmBTXybf 2019/06/18 6:43 https://monifinex.com/inv-ref/MF43188548/left

Its hard to find good help I am regularly saying that its difficult to find good help, but here is

# SEsuxmdpuAyMBWGeS 2019/06/18 9:04 https://csgrid.org/csg/team_display.php?teamid=178

Some genuinely choice articles on this internet site , saved to bookmarks.

# opmzGdufPhSdhpH 2019/06/19 7:05 http://all4webs.com/geesecancer04/hujqjggesu161.ht

Utterly written content material, appreciate it for selective information. No human thing is of serious importance. by Plato.

# KPIxvdYfKxv 2019/06/20 0:23 http://appengine.google.com/_ah/logout?continue=ht

Looking around While I was browsing today I noticed a excellent article about

# NybznRnvKlyqweV 2019/06/21 21:43 http://sharp.xn--mgbeyn7dkngwaoee.com/

not everyone would need a nose job but my girlfriend really needs some rhinoplasty coz her nose is kind of crooked*

# TMbEOCsLpZy 2019/06/21 23:47 https://guerrillainsights.com/

Regards for this post, I am a big big fan of this site would like to go on updated.

# phJtvtqSZpO 2019/06/26 2:59 https://topbestbrand.com/&#3610;&#3619;&am

This can be a list of phrases, not an essay. you are incompetent

# vQnYJJTsVoUlyOIOCx 2019/06/26 11:55 http://bit.do/ChristoffersenNewell8299

Thanks a lot for the blog post.Thanks Again.

# FSKefCaEjf 2019/06/26 16:34 http://bgtopsport.com/user/arerapexign941/

It as difficult to find knowledgeable people on this topic, however, you sound like you know what you are talking about! Thanks

# ZZgDexXmnyFtCOy 2019/06/27 15:47 http://speedtest.website/

Spot on with this write-up, I absolutely feel this site needs a lot more attention. I all probably be returning to read through more, thanks for the info!

# GwsmtKiOHsDoRxA 2019/06/28 18:22 https://www.jaffainc.com/Whatsnext.htm

You could definitely see your enthusiasm in the work you write. The world hopes for more passionate writers like you who are not afraid to mention how they believe. At all times follow your heart.

# PnPBTrFcxxsKIuNLv 2019/06/28 21:22 http://eukallos.edu.ba/

I regard something really special in this site.

# btqKYWKqVfuLpfSsHW 2019/06/29 6:01 http://travianas.lt/user/vasmimica220/

Tumblr article You are a very intelligent person!

タイトル  
名前  
Url
コメント