Complete Market Sessions POI ...
This commit is contained in:
@@ -20,7 +20,7 @@
|
|||||||
#property strict
|
#property strict
|
||||||
|
|
||||||
//
|
//
|
||||||
#include "../Libraries/x-saherelm.common.lib.mq5"
|
#include "../Libraries/x-saherelm.x-poi.lib.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
#include <ChartObjects/ChartObject.mqh>
|
#include <ChartObjects/ChartObject.mqh>
|
||||||
@@ -31,13 +31,15 @@
|
|||||||
|
|
||||||
enum ENUM_XCHARTOBJECTS
|
enum ENUM_XCHARTOBJECTS
|
||||||
{
|
{
|
||||||
|
X_FROM_TO,
|
||||||
X_TRADE_DAY,
|
X_TRADE_DAY,
|
||||||
|
X_MARKET_SESSION,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ENUM_X_TRADE_DAY_IDS
|
enum ENUM_X_CHART_IDS
|
||||||
{
|
{
|
||||||
X_TRADE_DAY_FROM,
|
X_FROM,
|
||||||
X_TRADE_DAY_TO
|
X_TO
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -50,7 +52,7 @@ enum ENUM_X_TRADE_DAY_IDS
|
|||||||
*
|
*
|
||||||
* @return ( string )
|
* @return ( string )
|
||||||
*/
|
*/
|
||||||
string ToString(ENUM_X_TRADE_DAY_IDS value)
|
string ToString(ENUM_X_CHART_IDS value)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
string result = NULL;
|
string result = NULL;
|
||||||
@@ -59,12 +61,12 @@ string ToString(ENUM_X_TRADE_DAY_IDS value)
|
|||||||
switch (value)
|
switch (value)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
case X_TRADE_DAY_FROM:
|
case X_FROM:
|
||||||
result = "XFROM";
|
result = "XFROM";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//
|
//
|
||||||
case X_TRADE_DAY_TO:
|
case X_TO:
|
||||||
result = "XTO";
|
result = "XTO";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -75,7 +77,10 @@ string ToString(ENUM_X_TRADE_DAY_IDS value)
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Implementation ...
|
// Implementation ...
|
||||||
class XCTardeDayObject : public CChartObject
|
|
||||||
|
//
|
||||||
|
// From To Chart Object ...
|
||||||
|
class XCFromToObject : public CChartObject
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
public:
|
public:
|
||||||
@@ -83,18 +88,18 @@ class XCTardeDayObject : public CChartObject
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Constructors ...
|
// Constructors ...
|
||||||
void XCTardeDayObject()
|
void XCFromToObject()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructors ...
|
// Deconstructors ...
|
||||||
void ~XCTardeDayObject()
|
void ~XCFromToObject()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create XTradeDayChartObject ...
|
* Create XCFromToObject ...
|
||||||
*
|
*
|
||||||
* @param chart_id: Long ...
|
* @param chart_id: Long ...
|
||||||
* @param name: String ...
|
* @param name: String ...
|
||||||
@@ -109,14 +114,19 @@ class XCTardeDayObject : public CChartObject
|
|||||||
const string name,
|
const string name,
|
||||||
const int window,
|
const int window,
|
||||||
const datetime from,
|
const datetime from,
|
||||||
const datetime to //
|
const datetime to,
|
||||||
|
const string objprefix = NULL //
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
string mFromVLineName = ToString(X_TRADE_DAY_FROM) + "_" + name;
|
string mPrefix = (IsValid(objprefix) ? objprefix + "_" : "");
|
||||||
|
|
||||||
|
//
|
||||||
|
string mFromVLineName =
|
||||||
|
mPrefix + ToString(X_FROM) + "_" + name;
|
||||||
result = mFromVLine.Create(chart_id, mFromVLineName, window, from);
|
result = mFromVLine.Create(chart_id, mFromVLineName, window, from);
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
@@ -124,20 +134,14 @@ class XCTardeDayObject : public CChartObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
string mToVLineName = ToString(X_TRADE_DAY_TO) + "_" + name;
|
string mToVLineName =
|
||||||
|
mPrefix + ToString(X_TO) + "_" + name;
|
||||||
result = mToVLine.Create(chart_id, mToVLineName, window, to);
|
result = mToVLine.Create(chart_id, mToVLineName, window, to);
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// result = Attach(chart_id, name, window, 2);
|
|
||||||
// if (!result)
|
|
||||||
// {
|
|
||||||
// return result;
|
|
||||||
// }
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -149,7 +153,7 @@ class XCTardeDayObject : public CChartObject
|
|||||||
*/
|
*/
|
||||||
virtual ENUM_XCHARTOBJECTS Type()
|
virtual ENUM_XCHARTOBJECTS Type()
|
||||||
{
|
{
|
||||||
return X_TRADE_DAY;
|
return X_FROM_TO;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -214,3 +218,132 @@ class XCTardeDayObject : public CChartObject
|
|||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
// XTradeDay Object ...
|
||||||
|
class XCTardeDayObject : public XCFromToObject
|
||||||
|
{
|
||||||
|
//
|
||||||
|
public:
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Constructors ...
|
||||||
|
void XCTardeDayObject()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Deconstructors ...
|
||||||
|
void ~XCTardeDayObject()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CreateByDay(
|
||||||
|
long chart_id,
|
||||||
|
const string name,
|
||||||
|
const int window,
|
||||||
|
XTradeDay &day //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = Create(
|
||||||
|
chart_id,
|
||||||
|
name,
|
||||||
|
window,
|
||||||
|
day.from,
|
||||||
|
day.to,
|
||||||
|
"XTDAY" //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve Object Type ...
|
||||||
|
*
|
||||||
|
* @return ( ENUM_XCHARTOBJECTS )
|
||||||
|
*/
|
||||||
|
virtual ENUM_XCHARTOBJECTS Type()
|
||||||
|
{
|
||||||
|
return X_TRADE_DAY;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
protected:
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
private:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// XMarketSession Object ...
|
||||||
|
class XCMarketSessionObject : public XCFromToObject
|
||||||
|
{
|
||||||
|
//
|
||||||
|
public:
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Constructors ...
|
||||||
|
void XCMarketSessionObject()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Deconstructors ...
|
||||||
|
void ~XCMarketSessionObject()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CreateByMarketSession(
|
||||||
|
long chart_id,
|
||||||
|
const string name,
|
||||||
|
const int window,
|
||||||
|
XMarketSession &session //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
string sessionLabel = ToString(session.session);
|
||||||
|
result = Create(
|
||||||
|
chart_id,
|
||||||
|
name,
|
||||||
|
window,
|
||||||
|
session.from,
|
||||||
|
session.to,
|
||||||
|
sessionLabel //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve Object Type ...
|
||||||
|
*
|
||||||
|
* @return ( ENUM_XCHARTOBJECTS )
|
||||||
|
*/
|
||||||
|
virtual ENUM_XCHARTOBJECTS Type()
|
||||||
|
{
|
||||||
|
return X_MARKET_SESSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
protected:
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
private:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|||||||
+599
-652
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,416 @@
|
|||||||
|
///////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// SaherElm IT Center MQL5 Seriallize Library
|
||||||
|
// ---------------------------------------
|
||||||
|
// Name: XPOILib
|
||||||
|
// Description: All models related to POIs ...
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Maintainer:
|
||||||
|
// ------------
|
||||||
|
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Global Properties ...
|
||||||
|
#property library
|
||||||
|
#property copyright "Copyright 2023, SaherElm IT Center"
|
||||||
|
#property link "https://www.saherelm.ir"
|
||||||
|
#property version "1.00"
|
||||||
|
#property strict
|
||||||
|
|
||||||
|
//
|
||||||
|
// Imports ...
|
||||||
|
#include "../Libraries/x-saherelm.common.lib.mq5"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Definitions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Definitions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// All Available POI(s) ...
|
||||||
|
enum ENUM_XPOIS
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Momentum Bar ...
|
||||||
|
X_POI_MOMENTUM_BAR, // Momentum Bar ...
|
||||||
|
//
|
||||||
|
// Rejection Bar ...
|
||||||
|
X_POI_REJECTION_BAR, // Rejection Bar ...
|
||||||
|
//
|
||||||
|
// Swings ...
|
||||||
|
X_POI_SWING_HIGH, // Simple Swing High ...
|
||||||
|
X_POI_SWING_LOW, // Simple Swing Low ...
|
||||||
|
//
|
||||||
|
// Support nad Resistance ...
|
||||||
|
X_POI_SUPPORT, // Support Zone ...
|
||||||
|
X_POI_RESISTANCE, // Resistance Zone ...
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Event Types ...
|
||||||
|
enum ENUM_XPOI_EVENTS
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Trading Days ...
|
||||||
|
X_TRADE_DAY_FIRST_BAR, // Trading Day Start ...
|
||||||
|
X_TRADE_DAY_LAST_BAR, // Trading Day End ...
|
||||||
|
//
|
||||||
|
// Session ...
|
||||||
|
X_SESSION_FIRST_BAR, // Session First Bar ...
|
||||||
|
X_SESSION_LAST_BAR, // Session Last Bar ...
|
||||||
|
//
|
||||||
|
// Momentum Bar ...
|
||||||
|
X_MOMENTUM_BAR_DETECTED, // Momentum Bar ...
|
||||||
|
//
|
||||||
|
// Rejection Bar ...
|
||||||
|
X_REJECTION_BAR_DETECTED, // Rejection Bar ...
|
||||||
|
//
|
||||||
|
// Swings ...
|
||||||
|
X_SWING_HIGH_DETECTED,
|
||||||
|
X_SWING_LOW_DETECTED,
|
||||||
|
//
|
||||||
|
// Support nad Resistance ...
|
||||||
|
X_SUPPORT_DETECTED,
|
||||||
|
X_RESISTANCE_DETECTED,
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Forext Sessions ...
|
||||||
|
enum ENUM_XSESSION
|
||||||
|
{
|
||||||
|
X_TOKYO,
|
||||||
|
X_SYDNEY,
|
||||||
|
X_LONDON,
|
||||||
|
X_NEW_YORK
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Represent a Session Working Time ...
|
||||||
|
struct XSession
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Props ...
|
||||||
|
ENUM_XSESSION session; // Session Identifier
|
||||||
|
string start; // Start Time
|
||||||
|
string end; // End Time
|
||||||
|
|
||||||
|
//
|
||||||
|
bool allowDraw;
|
||||||
|
color startColor;
|
||||||
|
ENUM_LINE_STYLE startStyle;
|
||||||
|
color endColor;
|
||||||
|
ENUM_LINE_STYLE endStyle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor ...
|
||||||
|
*/
|
||||||
|
void XSession()
|
||||||
|
{
|
||||||
|
Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean Structure ...
|
||||||
|
*/
|
||||||
|
void Clean()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
start = NULL;
|
||||||
|
end = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
allowDraw = false;
|
||||||
|
endColor = clrAqua;
|
||||||
|
endStyle = STYLE_DOT;
|
||||||
|
startColor = clrAqua;
|
||||||
|
endStyle = STYLE_DOT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate Structure ...
|
||||||
|
*
|
||||||
|
* @return ( bool )
|
||||||
|
*/
|
||||||
|
bool IsValid()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid(start) &&
|
||||||
|
IsValid(end);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize Specified Session ...
|
||||||
|
*
|
||||||
|
* @param _session: ENUM_XSESSION member ...
|
||||||
|
* @param _start: String (Session Start Time) ...
|
||||||
|
* @param _end: String (Session End Time) ...
|
||||||
|
*
|
||||||
|
* @return ( bool )
|
||||||
|
*/
|
||||||
|
bool Init(
|
||||||
|
ENUM_XSESSION _session,
|
||||||
|
string _start,
|
||||||
|
string _end //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid(_start) &&
|
||||||
|
IsValid(_end);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
end = _end;
|
||||||
|
start = _start;
|
||||||
|
session = _session;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
struct XTradeDay
|
||||||
|
{
|
||||||
|
//
|
||||||
|
datetime from;
|
||||||
|
datetime to;
|
||||||
|
|
||||||
|
//
|
||||||
|
void XTradeDay()
|
||||||
|
{
|
||||||
|
Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
void Clean()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
from = NULL;
|
||||||
|
to = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool IsValid()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid(from) &&
|
||||||
|
IsValid(to);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
string GetTag()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
string result = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!IsValid())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result = "XDay_" + ToFormatString(from) + "_" + ToFormatString(to);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Detected Session ...
|
||||||
|
struct XMarketSession
|
||||||
|
{
|
||||||
|
//
|
||||||
|
ENUM_XSESSION session;
|
||||||
|
datetime from;
|
||||||
|
datetime to;
|
||||||
|
|
||||||
|
//
|
||||||
|
void XMarketSession()
|
||||||
|
{
|
||||||
|
Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
void Clean()
|
||||||
|
{
|
||||||
|
from = NULL;
|
||||||
|
to = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool IsValid()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid(from) &&
|
||||||
|
IsValid(to);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
string GetTag()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
string result = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!IsValid())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result =
|
||||||
|
ToFormatString(from) + "_" +
|
||||||
|
ToFormatString(to) + "_";
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// XOHCL Event Handler ...
|
||||||
|
typedef void (*TXOHCLEventHandler)(
|
||||||
|
XOHCL &bar //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// POI Event Handler ...
|
||||||
|
typedef void (*TXPOIEventHandler)(
|
||||||
|
ENUM_XPOI_EVENTS event //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Session Event Handler ...
|
||||||
|
typedef void (*TXSessionEventHandler)(
|
||||||
|
ENUM_XSESSION session,
|
||||||
|
ENUM_XPOI_EVENTS event //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Extensions ...
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts ENUM_XPOI value to String Representation ...
|
||||||
|
*
|
||||||
|
* @param value: ENUM_XPOI member ...
|
||||||
|
*
|
||||||
|
* @return ( string )
|
||||||
|
*/
|
||||||
|
string ToString(ENUM_XPOIS value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
string result = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
case X_POI_MOMENTUM_BAR:
|
||||||
|
result = "XMNTMB";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_POI_REJECTION_BAR:
|
||||||
|
result = "XRJCTB";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_POI_SWING_HIGH:
|
||||||
|
result = "XSPH";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_POI_SWING_LOW:
|
||||||
|
result = "XSPL";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_POI_SUPPORT:
|
||||||
|
result = "XSUP";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_POI_RESISTANCE:
|
||||||
|
result = "XRES";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts ENUM_XSESSION value to String Representation ...
|
||||||
|
*
|
||||||
|
* @param value: ENUM_XSESSION member ...
|
||||||
|
*
|
||||||
|
* @return ( string )
|
||||||
|
*/
|
||||||
|
string ToString(ENUM_XSESSION value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
string result = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
case X_SYDNEY:
|
||||||
|
result = "Sydney";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_TOKYO:
|
||||||
|
result = "Tokyo";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_LONDON:
|
||||||
|
result = "London";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_NEW_YORK:
|
||||||
|
result = "NewYork";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user