#100 Fix · budian/java-client@202d271 · GitHub
Skip to content

Commit 202d271

Browse files
1 parent cadd0b0 commit 202d271

4 files changed

Lines changed: 132 additions & 15 deletions

File tree

src/main/java/io/appium/java_client/pagefactory/AppiumElementLocator.java

Lines changed: 7 additions & 8 deletions

src/main/java/io/appium/java_client/pagefactory/AppiumElementLocatorFactory.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,24 @@ class AppiumElementLocatorFactory implements ElementLocatorFactory, ResetsImplic
1212
private static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS;
1313

1414
private final SearchContext searchContext;
15-
private long implicitlyWaitTimeOut;
16-
private TimeUnit timeUnit;
15+
private final TimeOutContainer timeOutContainer;
1716

1817
public AppiumElementLocatorFactory(SearchContext searchContext,
1918
long implicitlyWaitTimeOut, TimeUnit timeUnit) {
2019
this.searchContext = searchContext;
21-
this.implicitlyWaitTimeOut = implicitlyWaitTimeOut;
22-
this.timeUnit = timeUnit;
20+
this.timeOutContainer = new TimeOutContainer(implicitlyWaitTimeOut, timeUnit);
2321
}
2422

2523
public AppiumElementLocatorFactory(SearchContext searchContext) {
2624
this(searchContext, DEFAULT_IMPLICITLY_WAIT_TIMEOUT, DEFAULT_TIMEUNIT);
2725
}
2826

2927
public ElementLocator createLocator(Field field) {
30-
return new AppiumElementLocator(searchContext, field, implicitlyWaitTimeOut, timeUnit);
28+
return new AppiumElementLocator(searchContext, field, timeOutContainer);
3129
}
3230

3331
@Override
3432
public void resetImplicitlyWaitTimeOut(long timeOut, TimeUnit timeUnit) {
35-
implicitlyWaitTimeOut = timeOut;
36-
this.timeUnit = timeUnit;
33+
timeOutContainer.resetImplicitlyWaitTimeOut(timeOut, timeUnit);
3734
}
3835
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package io.appium.java_client.pagefactory;
2+
3+
import java.util.concurrent.TimeUnit;
4+
5+
/**
6+
* Instances of this class contain
7+
* implicit time outs which are used by {@link AppiumElementLocator}
8+
*/
9+
class TimeOutContainer implements ResetsImplicitlyWaitTimeOut{
10+
private long timeOutValue;
11+
private TimeUnit timeUnit;
12+
13+
TimeOutContainer(long initialTimeOutValue, TimeUnit initialTimeUnit){
14+
this.timeOutValue = initialTimeOutValue;
15+
this.timeUnit = initialTimeUnit;
16+
}
17+
18+
@Override
19+
public void resetImplicitlyWaitTimeOut(long timeOut, TimeUnit timeUnit) {
20+
this.timeOutValue = timeOut;
21+
this.timeUnit = timeUnit;
22+
}
23+
24+
long getTimeValue(){
25+
return timeOutValue;
26+
}
27+
28+
TimeUnit getTimeUnitValue(){
29+
return timeUnit;
30+
}
31+
32+
}
Lines changed: 89 additions & 0 deletions

0 commit comments

Comments
 (0)